1
resposta

Formatações do print - Dúvidas para utilizar o round

Olá, seguem resultados do exercício com base nos códigos sugeridos. Tentei utilizar a fórmula round para arrendondar a nota, mas não deu muito certo, podem me ajudar?

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

1 resposta

Olá, Estudante. Como vai?

O seu código está muito bem estruturado e as variáveis foram declaradas perfeitamente! A saída textual com a interpolação usando %s e %d funcionou de forma impecável no console.

Sobre a sua dúvida com a função round(): olhando para o seu resultado, ela funcionou exatamente como deveria, mas o motivo de parecer que "não deu muito certo" está no valor inicial da própria média que você escolheu.

Vou te explicar o que aconteceu e como você pode testar o real poder do round() e das formatações de print:

1. Por que o resultado continuou 8.45?

Na linha de código, você definiu:

media_aluno = 8.45
media_aluno = round(media_aluno, 2)

O número 2 dentro dos parênteses do round(media_aluno, 2) diz ao Python: "Quero arredondar este número para que ele fique com duas casas decimais após o ponto".

Como o seu valor inicial (8.45) já tinha exatamente duas casas decimais, o Python não precisou cortar nem alterar nada, mantendo o valor idêntico.

Como testar o arredondamento na prática?

Para ver a mágica do round() acontecer, experimente alterar o valor da média para um número com três ou mais casas decimais. Veja estes dois exemplos:

  • Cenário A (Cortando casas sobressalentes):
    Se você definir media_aluno = 8.456 e rodar o round(media_aluno, 2), o Python vai arredondar para cima e exibir: 8.46.
  • Cenário B (Arredondando para apenas 1 casa):
    Se você quiser apenas uma casa decimal após a vírgula, troque o número 2 pelo número 1:
media_aluno = 8.45
media_aluno = round(media_aluno, 1)
print(media_aluno) # Vai exibir: 8.5

2. Uma dica de ouro para o seu print()

Como você está estudando justamente as formatações do print(), sabia que é possível arredondar e limitar as casas decimais de um número flutuante (float) direto na linha de exibição, sem nem precisar usar a função round() antes?

Utilizando o padrão clássico que você já aplicou no nome e na idade, basta usar o marcador %f adicionando um ponto e a quantidade de casas desejadas entre o % e a letra f. Veja que prático:

media_aluno = 8.4567

# O %.2f limita a exibição para 2 casas decimais automaticamente
print('A média do %s é %.2f' % (nome_aluno, media_aluno))

Saída no console: A média do Fabricio Daniel é 8.46

Seu progresso manipulando strings e tipos numéricos está excelente. Faça esses testes com mais casas decimais nas variáveis e veja o console se comportar de formas diferentes!

Espero que possa ter lhe ajudado!