Tentei o código abaixo. Depois de vários testes e correções cheguei ao que segue:
nome_aluno = None
n = 0
# Inicializa o dicionário fora do loop para armazenar todos os alunos
dict_de_nomes_e_medias = {}
while True:
nome_aluno = input ('Digite o nome do aluno (ou "FIM" para sair): ')
if nome_aluno.upper() == 'FIM':
break
try:
media_aluno = float (input (f'Digite a média de {nome_aluno.strip().upper()}: '))
dict_de_nomes_e_medias[nome_aluno] = media_aluno
n = n + 1
except ValueError:
print("Média inválida. Por favor, digite um número.")
print("Processo finalizado. Médias registradas: ", n)
print("Todas as médias registradas:")
print(dict_de_nomes_e_medias)
Quis me autodesafiar e trazer um código um pouco mais robusto e que possibilitasse inserção no dicionário até que o usuário digite "FIM". Infelizmente tive que aceitar algumas correções com a IA para poder finalizar e apresentar o desafio.
Poderia verificar se pode ser assim?