idade = 18
estudante = True
if idade <= 18 or estudante:
print " (Tem direito a desconto)"
else:
print ("Não tem direito a desconto")
idade = 18
estudante = True
if idade <= 18 or estudante:
print " (Tem direito a desconto)"
else:
print ("Não tem direito a desconto")
Oii, Pedro!
Analisando o seu código e o desafio proposto, percebo que você captou bem a lógica de usar o operador or para unir as duas condições. Mas, há um pequeno detalhe na comparação da idade que pode mudar o resultado final conforme as regras de negócio citadas.
No seu código, você utilizou idade <= 18. Pelas instruções do desafio ("menos de 18 anos"), o correto seria usar apenas o operador de "menor que" (<). Se o cliente tem exatamente 18 anos e não é estudante, ele já deveria pagar o valor integral.
Para que o programa funcione corretamente (mantendo a estrutura que você iniciou), o ideal seria:
idade = 18
estudante = True
# A regra diz: menor que 18 OU ser estudante
if idade < 18 or estudante == True:
print("Meia-entrada aplicada.")
else:
print("Valor integral.")
Passo a passo do algoritmo:
Note que, no seu exemplo original, como a variável estudante é True, o desconto seria aplicado de qualquer forma, independentemente da idade. Se mudarmos para idade = 20 e estudante = False, o sistema entrará corretamente no else.