Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Exercicio - Ingresso Cinema

# EXEMPLO - INGRESSO CINEMA

# VARIÁVEIS

ingresso_valor_cheia=20

# Condicionais para entrada são:
meia_entrada_aplicada=ingresso_valor_cheia/2 
if (estudante==sim or idade<18) else ingresso_valor_cheia


# PROCESSAMENTO

idade=int(input('Qual a sua idade?'))
estudante=(input('Você é estudante? (sim ou não)'))


# SAIDA:

resultado_1=(idade>18)
print(f'Entrada cheia aplicada: R$ {ingresso_valor_cheia}')

resultado_2=(idade<18)
print(f'Meia entrada aplicada: R$ {ingresso_valor_cheia/2}')

resultado_3=(estudante==sim)
print(f'Meia entrada aplicada: R$ {ingresso_valor_cheia/2}')

resultado_4=(estudante==não)
print(f'Entrada cheia aplicada: R$ {ingresso_valor_cheia}')
1 resposta
solução!

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:

  1. 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.
  2. 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.
  3. 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?

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