import re
def obter_notas_alunos():
"""
Obtem as notas dos alunos
Verifica se as notas estão separadas por vírgula.
Retorna as notas inseridas em uma lista; caso algum erro seja encontrad, repete a entrada.
"""
padrao = r"\d+(?:\.\d+)?"
while True:
entrada = input('Digite as notas dos alunos separadas por vírgula: ')
notas = re.findall(padrao, entrada)
if notas:
try:
notas = [float(n) for n in notas]
return notas
except ValueError:
print('Erro ao converter as notas. Insira valores válidos (EX: 8.5, 7.0).')
else:
print('Entrada inválida. Digite apenas números separados por vírgula.')
def obter_media_notas(notas):
"""
Obtem a média das notas
Realiza a soma de todas as notas obtidas e calcula a média.
Retorna 0 caso a lista esteja vazia.
"""
return sum(notas) / len(notas) if notas else 0
def main():
notas = obter_notas_alunos()
media = obter_media_notas(notas)
print(f'Média final da turma: {media:.2f}')
if __name__ == '__main__':
main()