def titulo(msg):
print('-'*80)
print(f'{msg}'.center(80))
print('-'*80)
def validar_nota(nota):
while True:
if nota == '' or nota.isalpha():
nota = input('Valor Inválido. Digite novamente: ')
else:
break
return float(nota)
def validar_nome(nome):
while True:
if nome == '' or nome.isnumeric():
nome = input('Nome Inválido. Digite novamente: ').strip().upper()
else:
break
return nome
alunos = {}
registro = []
while True:
aluno = validar_nome(input('Digite o nome do aluno: ').strip().upper())
nota_1 = validar_nota(input('Digite a primeira nota: '))
nota_2 = validar_nota(input('Digite a segunda nota: '))
nota_3 = validar_nota(input('Digite a terceira nota: '))
media = (nota_1 + nota_2 + nota_3)/3
alunos['Nome'] = aluno
alunos['Notas'] = [nota_1, nota_2, nota_3]
alunos['Media'] = media
if media >= 7:
alunos['Status'] = 'Aprovado'
elif 7 > media >= 5:
alunos['Status'] = 'Recuperação'
else:
alunos['Status'] = 'Reprovado'
registro.append(alunos.copy())
continuar = input('Deseja continuar registrando um novo aluno? (S/N)').strip().upper()[0]
while continuar not in 'SN':
continuar = input('Erro! Digite apenas S ou N: ').strip().upper()[0]
if continuar in 'N':
break
titulo('Registro dos alunos')
print(f'{"Núm.":<10} {"Nome":^20} {"Notas":^20} {"Media":<10} {"Status":^15}')
for kay, valor in enumerate(registro):
print(f'{kay:^10}',end= ' ')
for v in valor.values():
if isinstance(v,float):
print(f'{v:.1f}'.center(10), end= '')
else:
print(f'{str(v):<10}'.center(20),end='')
print()