1
resposta

[Projeto] Minha solução

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()
1 resposta

Oi, Pedro! Como vai?

Obrigada por compartilhar sua solução com a comunidade Alura.

Gostei de como você estruturou as funções validar_nota e validar_nome, garantindo que os dados sejam validados antes de serem processados. Essa prática é fundamental para evitar erros inesperados no programa e manter a consistência do fluxo de entrada de dados.

Conte com o apoio do Fórum na sua jornada. Abraços e bons estudos!