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

[Projeto] Desafio: Verificação de desconto

Você está desenvolvendo o sistema de bilheteria para um cinema. Os clientes podem ter direito a meia-entrada em duas situações:
Se tiverem menos de 18 anos ou Se forem estudantes.

Solicitar a idade do cliente.
Solicitar se o cliente é estudante (Sim ou Não).
Verificar se a idade é menor que 18 anos ou se o cliente é estudante.
Se a condição for verdadeira, mostrar na resposta: "Você tem direito à meia-entrada."
Caso negativo, mostrar na resposta: "Você não tem direito à meia-entrada."

No vscode

idade = int(input("Digite a idade do cliente: "))
estudante = input("O cliente é estudante? (sim/não): ").strip().lower()

if idade <18 or estudante == "sim":
print("O cliente tem direito à meia-entrada.")
else:
print("O cliente não tem direito à meia-entrada.")

1 resposta

Olá, Alexandre. Como vai?

Parabéns pela resolução do desafio! O seu código em Python está excelente, muito bem estruturado e atende com precisão absoluta todas as regras de negócio solicitadas para o sistema de bilheteria do cinema.

O ponto forte do seu algoritmo foi a escolha certeira do operador lógico or (OU). Como a regra determina que o cliente ganha o benefício se cumprir pelo menos uma das condições (ter menos de 18 anos ou ser estudante), o or garante que, se qualquer uma delas for verdadeira, o bloco do if seja executado com sucesso.

Para agregar ainda mais valor ao seu projeto e trazer algumas boas práticas de mercado, vou destacar duas coisas muito legais que você fez e sugerir um pequeno ajuste visual:

O que ficou excelente no seu código:

  • Uso do .strip().lower(): Essa foi uma sacada de mestre! Ao usar o .strip(), você limpa os espaços em branco acidentais que o usuário pode digitar, e o .lower() converte tudo para letras minúsculas. Isso evita que o programa dê erro ou negue o desconto se o cliente digitar "Sim", "SIM " ou "siM".

Atenção à indentação (Organização no VS Code):

No Python, a indentação (o recuo do texto) é obrigatória para que o computador saiba o que está dentro do if e o que está dentro do else. No seu post, os comandos print ficaram alinhados na parede esquerda. Para garantir que o VS Code não aponte nenhum erro de sintaxe (IndentationError), certifique-se de que o código esteja exatamente com este recuo:

idade = int(input("Digite a idade do cliente: "))
estudante = input("O cliente é estudante? (sim/não): ").strip().lower()

# O 'if' cria um desvio no fluxo. O que acontece lá dentro precisa de 4 espaços de recuo
if idade < 18 or estudante == "sim":
    print("O cliente tem direito à meia-entrada.")
else:
    print("O cliente não tem direito à meia-entrada.")

Sugestão de upgrade (Deixando o sistema mais robusto):

Se você quiser deixar seu programa ainda mais à prova de erros, pode ajustar a validação para aceitar também apenas a letra "s", já que muitas pessoas digitam de forma abreviada. Ficaria assim:

if idade < 18 or estudante == "sim" or estudante == "s":

Ou de uma forma ainda mais elegante usando o operador in:

if idade < 18 or estudante in ["sim", "s"]:

Você aplicou os fundamentos do Pensamento Computacional de forma perfeita no VS Code, transformando um problema do mundo real em uma solução lógica automatizada.

Espero que possa ter lhe ajudado!