import re
grades_list = input("Insira a lista de grades separadas por vírgula: ").strip().split(",") # pra dar um pré-processamento desses dados
valid_grades = []
grade_template = r'(10|\d).\d{1,2}' # garantir que a nota é de 0 a 10 (com um possível erro que eu vou citar abaixo)
if grades_list:
for grade in grades_list:
grade_organized = grade.strip() # pra garantir que os valores (que podem ser aceitos) serão aceitos pelo re.match aqui abaixo
if re.match(grade_template, grade_organized):
valid_grades.append(float(grade_organized))
else:
print("Não foi inserido nada na lista de notas.")
if valid_grades:
average = sum(valid_grades) / len(valid_grades)
print(f"Média final da turma: {average:.2f}")
else:
print("Os valores não foram inseridos no formato correto. Tente novamente.")
Eu fiz essa versão dessa forma para tentar garantir que a entrada fosse de 0.0 (ou 0.00) até 10.0 (ou 10.00). Só tem um pequeno problema. Esse caso acima aceita 10.35 como caso correto, o que eu não achei uma solução boa pra resolver sem o código acima ficar uma bela de uma bagunça.