Oi, Giovanni! Como vai?
Agradeço por compartilhar seu código com a comunidade Alura.
Seu código ficou bem organizado, com funções separadas para o título, cadastro das notas e exibição da tabela. Também chamou atenção o uso de dicionário para guardar os dados de cada aluno e a lógica com if, elif e else para definir a situação conforme a média.
Uma dica interessante para o futuro é usar o método strip() junto com upper() ao ler a resposta do usuário, evitando problemas caso a pessoa digite espaços antes ou depois da letra.
resposta = input('Deseja continuar? [S/N] ').strip().upper()
if resposta == 'N':
print('Cadastro encerrado')
Esse código remove espaços extras com strip(), deixa a letra maiúscula com upper() e facilita a verificação da resposta. Continue praticando, sua solução mostra um bom uso de listas, dicionários e condicionais.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!