Solucionado (ver solução)

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!

Solucionado
(ver solução)
1
resposta

Minha solução

nota1 = float(input("Digite a primeira nota: "))
if nota1 < 0 or nota1 > 10:
    print("Eu tava pensando em colocar uma mensagem de erro aqui se os valores das notas fossem menores que 0 ou maiores que 10 e iria reiniciar o programa")  
nota2 = float(input("Digite a segunda nota: "))
if nota2 < 0 or nota2 > 10:
    print("Mas eu perdi o pique pra fazer isso enquanto eu tava digitando, então decidi não finalizar o erro")
nota3 = float(input("Digite a terceira nota: "))
if nota3 < 0 or nota3 > 10:
    print("Se bem que isso nem e parte do exercicio, então não importa se eu terminasse o erro ou não lol")

media = (nota1 + nota2 + nota3) / 3

if media >= 7:
    print("Aluno Aprovado")
elif 5 <= media < 7:
    print("Aluno na Recuperação")
elif media < 5:
    print("Aluno Reprovado :(")
1 resposta
solução!

Olá, Felipe! Como vai?

Parabéns pela resolução da atividade!

Vi que você explorou o input para coletar dados com Python, utilizou muito bem o if/elif/else para organizar condições e ainda compreendeu a importância da validação para manter consistência nos cálculos.

Uma dica interessante para o futuro é centralizar a validação das notas em uma função, o que torna o código mais limpo e fácil de manter. Assim:

def validar_nota(nota):
    if 0 <= nota <= 10:
        return True
    else:
        print("Nota inválida! Digite um valor entre 0 e 10.")
        return False

notas = []
for i in range(1, 4):
    nota = float(input(f"Digite a nota {i}: "))
    if validar_nota(nota):
        notas.append(nota)

if notas:
    media = sum(notas) / len(notas)
    if media >= 7:
        print("Aluno Aprovado")
    elif 5 <= media < 7:
        print("Aluno na Recuperação")
    else:
        print("Aluno Reprovado :(")

Isso faz a validação de forma organizada e reaproveitável.

Se quiser aprofundar ainda mais, algumas boas práticas são:

  • Mensagens claras: informar ao usuário exatamente o que está errado.
  • Funções reutilizáveis: separar lógica em funções para evitar repetição.
  • Estrutura modular: dividir o programa em partes facilita manutenção e testes.

Alguns materiais podem estar em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

Ah, uma pergunta: Você prefere organizar a validação das notas em funções reutilizáveis para deixar o código mais limpo ou manter tudo direto no fluxo principal para simplificar?

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!