import re
def ler_dados_aluno():
padrao = re.compile(r'^([A-Za-zÀ-ÿ\s]+),\s*(\d{1,2}),\s*(\d+(\.\d+)?)$')
while True:
entrada = input('Digite os dados do aluno no formato "Nome, Idade, Nota" separados por vírgula: ')
try:
if not entrada:
raise ValueError("Entrada vazia.")
match = padrao.match(entrada)
if not match:
raise ValueError("Formato inválido. Use: Nome, Idade, Nota")
nome = match.group(1).strip().title()
idade = int(match.group(2))
nota = float(match.group(3))
return {"nome": nome, "idade": idade, "nota": nota}
except ValueError as e:
print(f'Erro: {e}')
def continuar_programa():
while True:
continuar = input('Deseja adicionar outro aluno? (s/n): ').strip().lower()
if continuar in ('s', 'n'):
return continuar == 's'
print('Por favor, responda com "s" ou "n".')
def exibir_dados_alunos(aluno):
print(f'Aluno: {aluno["nome"]}')
print(f'Idade: {aluno["idade"]}')
print(f'Nota: {aluno["nota"]:.2f}')
def main():
alunos = []
while True:
aluno = ler_dados_aluno()
alunos.append(aluno)
exibir_dados_alunos(aluno)
if not continuar_programa():
break
print('\nEncerrando o programa!')
for aluno in alunos:
exibir_dados_alunos(aluno)
if __name__ == '__main__':
main()