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

Praticando Python : condicionais if, elif e else

Classificando estudantes por média

def media(nota_1, nota_2, nota_3):
  media = (nota_1 + nota_2 + nota_3) / 3
  return media

NOTA_APROVACAO = 7
NOTA_LIMITE_RECUPERACAO = 5
# Aluno com nota abaixo da NOTA_LIMITE_RECUPERACAO será reprovado.
# Aluno com nota entre NOTA_LIMITE_RECUPERACAO e NOTA_APROVACAO ficará de recuperação.
# Aluno com nota igual ou superior a NOTA_APROVACAO será aprovado

nota_1 = float(input("Digite a primeira nota: "))
nota_2 = float(input("Digite a segunda nota: "))
nota_3 = float(input("Digite a terceira nota: "))

media_aluno = media(nota_1, nota_2, nota_3)

if media_aluno < NOTA_LIMITE_RECUPERACAO:
  print(f"Aluno Reprovado! Média: {media_aluno:.2f}")
elif media_aluno < NOTA_APROVACAO:
  print(f"Aluno de Recuperação! Média: {media_aluno:.2f}")
else:
  print(f"Aluno Aprovado! Média: {media_aluno:.2f}")
1 resposta
solução!

Olá, Esdras. Como vai?

Parabéns pela resolução do exercício! O seu código está muito bem estruturado e você aplicou conceitos fundamentais de forma excelente, como a definição de funções, a conversão de tipos com float e o uso de f-strings com formatação de casas decimais (:.2f).

Gostaria de destacar um ponto muito positivo na sua implementação: o uso de constantes (variáveis em letras maiúsculas como NOTA_APROVACAO). Essa é uma excelente prática de programação, pois torna o código muito mais fácil de manter. Se a média da escola mudar amanhã, você só precisa alterar um único lugar no código.

Para complementar o seu aprendizado sobre as estruturas condicionais, aqui estão algumas observações e boas práticas:

  • Lógica de Intervalos: Note que a ordem do seu if, elif e else está logicamente perfeita. Ao testar primeiro se a nota é menor que o limite de recuperação, você "descarta" os reprovados, permitindo que o elif trate apenas quem está entre a recuperação e a aprovação.
  • Refatoração de Funções: Uma sugestão para deixar o código ainda mais limpo seria incluir a própria lógica de classificação dentro de uma função. Isso ajuda a separar a "regra de negócio" da "entrada de dados".

Veja como o trecho final poderia ser encapsulado:

def classificar_aluno(media):
    if media < NOTA_LIMITE_RECUPERACAO:
        return "Reprovado"
    elif media < NOTA_APROVACAO:
        return "Recuperação"
    else:
        return "Aprovado"

# Uso no código principal
status = classificar_aluno(media_aluno)
print(f"Status: {status}! Média: {media_aluno:.2f}")
  • Tratamento de Entradas: Como você está usando input(), uma boa prática para projetos futuros é pensar no que acontece se o usuário digitar algo que não seja um número ou uma nota negativa. Validar os dados de entrada é um próximo passo importante na sua jornada.

Seu raciocínio lógico está muito claro e o uso das condicionais foi aplicado corretamente para resolver o problema proposto.

Espero que possa ter lhe ajudado!