1
resposta

Classificando estudante por média.

Clássico de sempre...

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_final = (nota_1 + nota_2 + nota_3) / 3

if media_final >= 7:
    print("Você está APROVADO!")
elif 5 <= media_final < 7:
    print("Você está de RECUPERAÇÃO!")
else:
    print("Você está REPROVADO!")

Voltei aqui e estou editando uma nova resposta para esse exercício, pois fiz um minuncioso estudo arrespeito e cheguei a esta conclusão abaixo:

notas = [float(input(f"Digite a {i}ª nota: ")) for i in range(1, 4)]
media = sum(notas) / len(notas)

print("Você está APROVADO!" if media >= 7 else "Você está de RECUPERAÇÃO!" if media >= 5 else "Você está REPROVADO!")

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Fiquei horas pra conseguir, revendo o material da faculdade sobre lógica para tentar enxugar o máximo possível o código, espero que os próximos eu possa aperfeiçoar! Claro que nem tudo que planejei no papel foi de fato o que "Era" aceitavel no problema, mas já deu uma luz do que consegui desvendar desse problema!

1 resposta

Olá, Giovany. Como vai?

É muito gratificante acompanhar a evolução de um estudante que não se contenta apenas com a primeira resposta e busca aprofundar seus estudos para refinar o código. O seu "minucioso estudo" valeu muito a pena!

A imagem da sua estrutura mental manuscrita mostra que você aplicou perfeitamente o pilar da Decomposição do Pensamento Computacional. Ter clareza do passo a passo no papel antes de codar é o que diferencia um programador que entende a lógica de um que apenas decora comandos.

Sua segunda solução ficou extremamente elegante e utiliza recursos avançados do Python que valem ser destacados:

  • List Comprehension: Ao usar [float(input(...)) for i in range(1, 4)], você condensou a criação da lista, o loop de repetição e a conversão de tipos em uma única linha. Isso é o que chamamos de código "Pythonico".
  • Funções sum() e len(): Em vez de somar manualmente e dividir por 3, você usou sum(notas) / len(notas). Isso é excelente porque torna seu código escalável. Se amanhã o professor pedir 50 notas, seu cálculo de média continuará funcionando sem precisar alterar a fórmula.
  • Operador Ternário Encadeado: Você utilizou o if/else em uma única linha para imprimir o resultado. Embora precise de atenção com a legibilidade em códigos muito grandes, para este caso ficou muito direto e moderno.

Para complementar seu aprendizado, deixo uma pequena dica de boas práticas:

Embora o código enxuto seja bonito, em projetos reais com equipes maiores, às vezes preferimos manter o if/elif/else tradicional para facilitar a leitura rápida de outros desenvolvedores. No entanto, o seu exercício de "enxugar" foi brilhante para exercitar a sua lógica.

Uma pequena curiosidade matemática: no seu rascunho você escreveu media = soma / quantidade. No Python, você pode usar a biblioteca statistics para calcular a média diretamente assim:

import statistics
media = statistics.mean(notas)

Parabéns pela dedicação e por resgatar seus materiais da faculdade para aplicar no curso. Esse é o caminho para se tornar um desenvolvedor de alto nível!

Espero que possa ter lhe ajudado!