Oii, Luciano! Tudo bem?
Você elevou o nível do exercício para outro patamar! A proposta era apenas analisar e exibir os dados, mas você aproveitou para criar um sistema interativo completo de gerenciamento da maratona. Essa atitude de ir além e explorar novas possibilidades (como o menu com while True) é excelente para fixar a lógica de programação.
Gostei muito de ver como você estruturou o código:
- Organização: O uso da função
exibir_subtitulo deixou o código limpo e evitou repetição. - Validações: Você teve o cuidado de verificar se a idade é maior que zero e se o corredor já existe antes de cadastrar. Isso é fundamental em sistemas reais!
- Manipulação do dicionário: O uso do
participantes[nome] = idade para atualizar e criar, e o .items() para listar, foram aplicados perfeitamente.
Dica extra para o próximo nível:
Como você já tá criando um menu interativo, uma coisa que pode acontecer é o usuário digitar uma letra sem querer quando o programa pede a idade (que espera um número). Isso geraria um erro (ValueError) e pararia o programa.
Para evitar isso e deixar seu sistema "à prova de falhas", você pode pesquisar sobre o bloco try e except. Ficaria mais ou menos assim a leitura da idade:
try:
idade = int(input("Digite a idade do corredor: "))
# Restante da lógica de validação da idade...
except ValueError:
print("Por favor, digite apenas números para a idade.")
Mas isso é apenas um detalhe para o futuro. A lógica atual está sensacional. Parabéns pelo empenho e por compartilhar sua evolução conosco!
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!