How to ensure that three conditions are met? Is there a better way to do it? [closed]

-3

A program that asks a person's age, weight, and height and decides if they are fit to enter the army. To enter, you must be of age, weigh more than or equal 60 pounds and measure more or equal 1.70 meters.

print('='*5, 'Aliste-se no Exército Brasileiro', '='*5)

idade = int(input('Digite sua idade: '))
peso = int(input('Digite seu peso: '))
altura = float(input('Digite sua altura: ex:1.7 '))

apto = ' '

if idade >= 18:
    apto = '1'
else:
    apto = '0'

if peso >= 60:
    apto += '1'
else:
    apto += '0'

if altura >= 1.70:
    apto += '1'
else:
    apto += '0'

if apto == '111':
    print('Você está apto a alista-se no exército brasileiro, parabéns.')
elif apto == '011':
    print('Você não possue Idade sulficiente para ingressar no exército.')
elif apto == '101':
    print('Você não possue peso sulficiente para ingressar no exército.')
elif apto == '110':
    print('Você não possue altura sulficiente para ingressar no exército.')
elif apto == '100':
    print('Você não possue nem Peso nem Altura sulficiente para ingressar no exército.')
elif apto == '001':
    print('Você não possue nem Idade nem Peso sulficiente para ingressar no exército.')
elif apto == '010':
    print('Você não possue nem Idade nem Altura sulficiente para ingressar no exército.')
else:
    print('Você não possui nenhum dos requisitos para entrar no Exército')
    
asked by anonymous 19.12.2018 / 02:14

2 answers

1

The idea is just to check whether or not you are fit for 3 conditions. To do so, instead of creating a string with three values and then checking all possibilities, you can use the all :

idade = int(input('Sua idade: '))
peso = float(input('Seu peso: '))
altura = float(input('Sua altura: '))

apto = all([
    idade >= 18,
    peso >= 60,
    altura >= 1.70
])

Thus% w / w% will% w / w% when all three conditions are met or% w / w% in all other cases.

Given the new information that messages are also required, what you can do is something like:

idade = int(input('Sua idade: '))
peso = float(input('Seu peso: '))
altura = float(input('Sua altura: '))

apto = True

if idade < 18:
    print('Você precisa ter, pelo menos, 18 anos')
    apto = False

if peso < 60:
    print('Você precisa ter, pelo menos, 60 quilos')
    apto = False

if altura < 1.70:
    print('Você precisa ter, pelo menos, 1.70 m de altura')
    apto = False

if apto:
    print('parabéns, você está apto a alistar-se')

At the end, if any conditions are not satisfied, apto will True .

    
19.12.2018 / 02:58
0

Taking the idea of Anderson Carlos Woss:

print('='*5, 'Aliste-se no Exército Brasileiro', '='*5)
idade = int(input('Sua idade: '))
peso = float(input('Seu peso: '))
altura = float(input('Sua altura: '))
printe = ''
apto = True
if idade < 18:
    printe = 'Você precisa ter, pelo menos, 18 anos'
    apto = False
if peso < 60:
    printe += '\nVocê precisa ter, pelo menos, 60 quilos'
    apto = False
if altura < 1.70:
    printe += '\nVocê precisa ter, pelo menos, 1.70 m de altura'
    apto = False
nenhum_requisito = all([
    idade < 18,
    peso < 60,
    altura < 1.70
])
if nenhum_requisito:
   printe ='Você não possui nenhum dos quesitos para se alistar!'
if apto == True:
    printe = 'parabéns, você está apto a alistar-se'
print(printe)

OR MAYBE:

print('='*5, 'Aliste-se no Exército Brasileiro', '='*5)
idade = int(input('Sua idade: '))
peso = float(input('Seu peso: '))
altura = float(input('Sua altura: '))
printe = ''
nenhum_requisito = ''
apto = True
if idade < 18:
    printe = 'Você precisa ter, pelo menos, 18 anos'
    apto = False
if peso < 60:
    printe += '\nVocê precisa ter, pelo menos, 60 quilos'
    apto = False
if altura < 1.70:
    printe += '\nVocê precisa ter, pelo menos, 1.70 m de altura'
    apto = False
if idade < 18 and peso < 60 and altura < 1.70:
    nenhum_requisito = 'Você não possui nenhum dos quesitos para se alistar!'
    printe = nenhum_requisito
if apto == True:
    printe = 'parabéns, você está apto a alistar-se'
print(printe)

I do not know the best script, I would bet on the first one. If anyone can evaluate ...

    
19.12.2018 / 19:31