Olá, Paola. Como vai?
Parabéns por mais uma excelente entrega! O seu algoritmo para a verificação de desconto está perfeito e demonstra uma compreensão impecável sobre o funcionamento das tabelas verdade e dos operadores lógicos.
A escolha do operador OU (OR) foi aplicada com maestria. Na lógica de programação, esse operador é utilizado exatamente quando precisamos que pelo menos uma das condições seja verdadeira para que todo o bloco seja executado. Ou seja, se o cliente for menor de idade (Verdadeiro) mas não for estudante (Falso), ele ganha o desconto. Se for maior de idade (Falso) mas for estudante (Verdadeiro), também ganha. O único cenário que cai no Senão é se ambas as condições forem falsas.
Para agregar ainda mais valor ao seu projeto e trazer uma excelente boa prática do mundo real da programação, quero chamar a atenção para a etapa onde você pergunta se o cliente é estudante (Resposta: SIM ou NÃO).
Na prática, quando um usuário digita um texto em um sistema, ele pode escrever de formas diferentes: "sim", "Sim", "SIM" ou até mesmo digitar uma letra minúscula por engano. Na programação, o computador diferencia letras maiúsculas de minúsculas. Se o seu código testar apenas por "SIM", e o usuário digitar "sim", a condição falharia.
Para evitar esse problema, uma grande boa prática é aplicar uma função de padronização de texto logo após a entrada do dado. No Python, por exemplo, costumamos usar a função .upper() ou .strip() para garantir que o texto fique limpo e todo em maiúsculo antes do teste.
Veja como a sua lógica se traduz de forma limpa e profissional para um código em Python utilizando essa boa prática:
# Solicitar a idade do cliente
idade = int(input("Digite a idade do cliente: "))
# Perguntar se o cliente é estudante e padronizar para letras maiúsculas
estudante_input = input("O cliente é estudante? (SIM ou NÃO): ")
eh_estudante = estudante_input.strip().upper() == "SIM"
# Analisa as condições utilizando o operador lógico OU
if idade < 18 or eh_estudante:
print("Cliente possui direito à meia-entrada.")
else:
print("Cliente não possui direito ao desconto.")
Com o uso do .strip().upper(), não importa se o usuário digitar "sim", "Sim " ou "sIm", o programa vai entender perfeitamente e conceder o benefício corretamente.
Você mantém uma constância e clareza excepcionais na escrita dos seus algoritmos. Continue assim!
Espero que possa ter lhe ajudado!