1
resposta

gabarito não imprime média

fiz da seguinte forma para imprimir:

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 = (nota_1+nota_2+nota_3)/3
print (f'Média: {media:.1f}')

if media < 5:
print ('Reprovado')
elif 5 <= media < 7:
print ('Recuperação')
else:
print('Aprovado')

1 resposta

Olá, Willy! Como vai?

O seu código está perfeito e a lógica para calcular e exibir a média com uma casa decimal ({media:.1f}) está corretíssima!

Se você tentou rodar esse código exatamente do jeito que postou aqui no fórum e ele deu erro (provavelmente não imprimindo a média e travando o programa), o motivo é uma "pegadinha" clássica e exclusiva do Python: a indentação (os espaços no começo da linha).


O que está acontecendo? (O Bug dos Espaços)

Ao contrário de outras linguagens que usam chaves {} para saber o que está dentro de uma condição, o Python usa o alinhamento de espaços. Sempre que você usa um if, elif ou else, a linha de baixo precisa obrigatoriamente ter um recuo (geralmente 4 espaços ou 1 clique na tecla Tab).

Se o seu código estiver colado na parede esquerda assim:

if media < 5:
print ('Reprovado') # ERRO AQUI!

O Python se perde, estoura um erro chamado IndentationError e interrompe a execução do script antes mesmo de conseguir processar o seu comando print da média.


O Código Corrigido e Pronto para Rodar

Ajustando o alinhamento dos blocos, o seu programa fica assim:

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

# Exibe a média perfeitamente
print(f'Média: {media:.1f}')

# CORREÇÃO: Repare nos 4 espaços de recuo antes de cada print condicional
if media < 5:
    print('Reprovado')
elif 5 <= media < 7:
    print('Recuperação')
else:
    print('Aprovado')

Por que a sua lógica ficou excelente?

Gostaria de te dar os parabéns pela linha do elif:

elif 5 <= media < 7:

Em muitas linguagens, você seria obrigado a escrever elif media >= 5 and media < 7. O Python aceita essa escrita simplificada e acorrentada (chamada de operadores encadeados), que deixa o código muito mais limpo, elegante e gostoso de ler.

Ajuste esses espacinhos no seu editor (VS Code, Colab ou PyCharm) e veja a mágica acontecer!

Espero que possa ter lhe ajudado!