2
respostas

Resolução RW: Classificando estudantes por média

Oi, pessoal!

Olhei os demais códigos e fiquei com a seguinte dúvida:

Será que
usar 5 <= nota < 7** na segunda condição
é melhor que apenas **>= 5

porque 'forçaria' a análise do valor no intervalo dado?

# Entrada dos valores
nota1 = float(input('Digite a primeira nota: '))
nota2 = float(input('Digite a segunda nota: '))
nota3 = float(input('Digite a terceira nota: '))

# Calcula a média final 
media = (nota1 + nota2 + nota3) / 3

# ----- Regras ----
# Média >= 7: Aprovado
# Média >= 5: Recuperação
# Média <5: Reprovado


if media >= 7:
  print(f'\nAprovado')
  print(f'Média: {media:.2f}')
elif media >= 5:
  print(f'\nRecuperação')
  print(f'Média: {media:.2f}')
else:
  print(f'\nReprovado')
  print(f'Média: {media:.2f}')

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
2 respostas

Oi, Rodrigo! Como vai?
Agradeço por compartilhar seu código com a comunidade Alura.

Faz sentido pensar em usar o intervalo 5 <= nota < 7, pois ele deixa a condição mais explícita e evita sobreposição de valores entre as faixas. Dessa forma, a leitura do código fica mais clara para quem for mantê-lo no futuro.

Uma dica interessante para o futuro é usar o método round() para arredondar a média antes de exibir, caso queira simplificar a formatação. Veja este exemplo:


media = round((nota1 + nota2 + nota3) / 3, 2)
print(media)

Esse código arredonda a média para duas casas decimais e exibe o valor direto.

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

Oi, Rodrigo! Como vai?

A sua dúvida é muito pertinente e é uma boa prática pensar na clareza e precisão do seu código. No seu exemplo, usar 5 <= media < 7 na condição elif é, de fato, uma forma mais explícita de definir o intervalo para a média que resulta em "Recuperação". Isso deixa claro que a média deve estar entre 5 (inclusive) e 7 (exclusivo).

Embora a lógica do seu código atual funcione corretamente, já que a condição elif media >= 5 é avaliada apenas se a média não for maior ou igual a 7 (devido ao if anterior), usar 5 <= media < 7 pode tornar o código mais legível para quem está lendo, deixando claro que estamos lidando com um intervalo específico.

Aqui está como ficaria o trecho do seu código com essa alteração:

if media >= 7:
    print(f'\nAprovado')
    print(f'Média: {media:.2f}')
elif 5 <= media < 7:
    print(f'\nRecuperação')
    print(f'Média: {media:.2f}')
else:
    print(f'\nReprovado')
    print(f'Média: {media:.2f}')

Essa abordagem é bastante comum em Python e é uma das vantagens da linguagem, permitindo expressar intervalos de forma clara e direta.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.