Oii, Rebeca! Parabéns por se empenhar no desafio da Verificação de desconto. Ficou nítido como você buscou construir uma estrutura para avaliar múltiplas condições, como idade e status de estudante, simulando um cenário real de bilheteria.
Sua ideia de mapear as regras de negócio usando operadores lógicos está na direção certa. O uso do input para capturar as informações e o tratamento da idade como número inteiro (int) demonstram que você compreendeu bem a necessidade de tipagem de dados.
Pontos de atenção e melhorias
Para que seu código funcione perfeitamente no Python e execute as decisões de forma automática, precisamos ajustar alguns detalhes de sintaxe e fluxo:
- Ordem de execução: O Python lê o código de cima para baixo. No seu exemplo, a linha que calcula a
meia_entrada_aplicada tenta ler as variáveis estudante e idade antes mesmo de o usuário digitá-las no input. O ideal é capturar os dados primeiro e fazer os cálculos depois. - Uso de aspas para textos (Strings): Palavras como
"sim" e "não" precisam estar entre aspas no código. Da forma como está, o Python tenta procurá-las como se fossem variáveis que não foram criadas. - Estrutura Condicional (
if/else): Em vez de calcular e imprimir todos os resultados fixos de forma isolada no final, podemos usar blocos de condições para decidir uma única resposta correta.
Para visualizar como o programa deve receber essas informações e escolher o caminho correto para o preço do ingresso, veja este fluxo de decisão:
- Entrada: O sistema coleta a idade e se é estudante.
- Validação: A regra condicional testa se a pessoa atende a pelo menos um dos requisitos para pagar meia.
- Resultado: O programa define o valor final baseado nessa escolha.
Veja uma forma de organizar esse raciocínio no código:
# 1. ENTRADA DE DADOS
ingresso_valor_cheia = 20
idade = int(input('Qual a sua idade? '))
estudante = input('Você é estudante? (sim ou não) ')
# 2. PROCESSAMENTO E CONDICIONAIS
# Usamos o "or" para verificar se pelo menos uma das condições é verdadeira
if estudante == "sim" or idade < 18:
valor_final = ingresso_valor_cheia / 2
mensagem = "Meia entrada aplicada"
else:
valor_final = ingresso_valor_cheia
mensagem = "Entrada cheia aplicada"
# 3. SAÍDA
print(f'{mensagem}: R$ {valor_final:.2f}')
Essa organização utilizando blocos estruturados deixa o comportamento do sistema previsível e limpo. Se você quiser explorar como estruturar e encadear essas condições para cenários com mais categorias de desconto, recomendo assistir esse vídeo: NA PRÁTICA: como IF, ELIF e ELSE funcionam em PYTHON?
Na sua visão, você acredita que utilizar as condições unificadas com o if e else tornou o entendimento do fluxo de desconto mais claro do que avaliar cada regra isoladamente?
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!