Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Minha solução do exercício "Classificando estudantes por média".

while True:
    try:
        primeira_nota = input('Digite a 1ª nota: ')
        primeira_nota = float(primeira_nota)

        segunda_nota = input('Digite a 2ª nota: ')
        segunda_nota = float(segunda_nota)

        terceira_nota = input('Digite a 3ª nota: ')
        terceira_nota = float(terceira_nota)

        media = (primeira_nota + segunda_nota + terceira_nota) / 3

        if media >= 7:
            print('Aluno aprovado')
            break
        elif 5 <= media < 7:
            print('Aluno em recuperação')
            break
        else:
            print('Aluno reprovado')
            break
    except ValueError:
        print('Você digitou um caractere inválido. Insira apenas números.')
2 respostas
solução!

Olá! Como vai?

Muito bem! Continue resolvendo os desafios e compartilhando com a comunidade Alura.

Observei que você explorou o uso do loop while True para manter a entrada de dados até uma condição ser satisfeita, utilizou muito bem o bloco try-except para tratar entradas inválidas e ainda compreendeu a importância de usar o break para sair do loop após determinar a situação do aluno.

Permaneça postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Uma dica interessante para o futuro é usar uma função para validar as entradas, assim você evita repetir o mesmo bloco de código para cada nota. Dessa forma:

def ler_nota(ordem):
    while True:
        try:
            return float(input(f'Digite a {ordem}ª nota: '))
        except ValueError:
            print('Entrada inválida. Insira apenas números.')

primeira_nota = ler_nota(1)
segunda_nota = ler_nota(2)
terceira_nota = ler_nota(3)
media = (primeira_nota + segunda_nota + terceira_nota) / 3
print(f'Média: {media:.2f}')

Resultado:

Digite a 1ª nota: 7.5
Digite a 2ª nota: 8
Digite a 3ª nota: a
Entrada inválida. Insira apenas números.
Digite a 3ª nota: 9
Média: 8.17

Isso faz seu código ficar mais organizado, evita repetições e facilita a manutenção.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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

Olá, Daniel, tudo bem? Agradeço pelo feedback com as observações sobre o meu código. Fico feliz em poder colaborar com o fórum da Alura. Sim, vou seguir a sua dica e utilizar mais as funções, pois de fato, como podemos ver pelo seu exemplo, o código fica mais organizado e menos repetitivo, o que está bem de acordo com o que diz o Zen do Python. Abraço e até a próxima!