1
resposta

Desafio: Verificação de desconto

idade = 18
estudante = True
if idade <= 18 or estudante:
print " (Tem direito a desconto)"
else:
print ("Não tem direito a desconto")

1 resposta

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.

Refinando o Código

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:

  1. Entrada de dados: O sistema recebe a idade (número) e o status de estudante (sim/não).
  2. Teste Lógico:
  • Pergunta 1: A idade é menor que 18?
  • Pergunta 2: A pessoa é estudante?
  1. Operador OU: Se qualquer uma das respostas acima for "sim", o resultado da verificação é verdadeiro.
  2. Saída: Exibe a mensagem correspondente ao resultado do teste.

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.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!