Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Desafio: Verificação de desconto

Pensando nesse desafio, a primeira coisa que percebi foi que as duas regras (menor de idade OU estudante) não precisam ser as duas verdadeiras ao mesmo tempo, basta uma delas já dar direito ao desconto. Isso é justamente o operador or que vimos na aula: enquanto o and exige que tudo seja verdadeiro, o or só precisa de uma condição batendo.

**Algoritmo em linguagem natural **

Perguntar a idade do cliente.

Perguntar se o cliente é estudante (sim ou não).

Verificar se a idade é menor que 18 ou se o cliente respondeu que é estudante.

Se pelo menos uma das duas for verdadeira, exibir "Cliente tem direito a meia-entrada."

Se nenhuma das duas for verdadeira, exibir "Cliente paga valor integral."

idade_cliente = int(input("Qual a idade do cliente? "))
resposta_estudante = input("O cliente e estudante? (sim/nao): ")

eh_estudante = resposta_estudante == "sim"

if idade_cliente < 18 or eh_estudante:
print("Cliente tem direito a meia-entrada.")
else:
print("Cliente paga valor integral.")

Uma coisa que eu quis testar foi a resposta em texto ("sim"/"não") em vez de já pedir um valor True/False direto, acho que fica mais parecido com uma tela real de sistema, onde quem atende no caixa não vai digitar "True" no computador.

1 resposta

Fala, Gusttavo! Tudo bom?

Agradeço por trazer sua solução para o fórum!

Curti demais como trabalhou a estrutura condicional com or para verificar as regras em Python, entendeu perfeitamente a importância da entrada de dados com input() para tornar o programa interativo e usou bem a comparação de strings para transformar a resposta em um valor lógico.

Algo bem legal para complementar é deixar a verificação de estudante mais flexível, aceitando maiúsculas ou minúsculas. Dessa maneira:

idade_cliente = int(input("Qual a idade do cliente? "))
resposta_estudante = input("O cliente é estudante? (sim/nao): ").strip().lower()

eh_estudante = resposta_estudante == "sim"

if idade_cliente < 18 or eh_estudante:
    print("Cliente tem direito a meia-entrada.")
else:
    print("Cliente paga valor integral.")

Isso faz com que o programa funcione mesmo que o usuário digite "Sim", "SIM" ou "sim".

E algumas boas práticas que você pode adotar são:

  • Validação: garantir que a idade não seja negativa.
  • Legibilidade: usar nomes de variáveis consistentes, como idade e estudante.
  • Generalização: permitir que outras condições sejam adicionadas facilmente, como "idoso".

Continue postando as suas soluções! Além de ganhar pontos de XP na plataforma, você pode ajudar outros estudantes no fórum.

Ah, uma pergunta: você prefere evoluir esse código para incluir mais categorias de desconto (como idosos ou professores) ou manter apenas estudante e menor de idade para focar na lógica básica?

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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