1
resposta

[Dúvida] Está conforme a atividade?

QUNT = 4

dicionario_maratona = {}

while True:
    for _ in range(QUNT):
        nome = input("Digite o nome do participante: ").capitalize()
        idade = int(input("Digite a idade do participante: "))
        tempo = int(input("Digite o tempo de conclusão da maratona em minutos: "))

        dicionario_maratona[nome] = {"idade": idade, "tempo": tempo}

    print("Dicionário de participantes:")
    for i, (nome, dados) in enumerate(dicionario_maratona.items(), start=1):
        print("{}. Nome: {}, Idade: {}, Tempo: {} minutos".format(i, nome, dados["idade"], dados["tempo"]))
    break
1 resposta

Oii, Samuel!

Estou gostando de ver seu empenho em ir além do enunciado! É assim que se evolui.

Respondendo sua pergunta de forma direta: Seu código funciona, mas ele desviou um pouco do objetivo didático da atividade.

Vou te explicar o porquê e como ajustar:

1. O objetivo da aula: Separar dados (.keys e .values)
O foco desse exercício era treinar métodos específicos para separar as informações:

  • Mostrar os nomes (usando .keys()).
  • Mostrar as idades (usando .values()).
  • Mostrar a relação completa (usando .items()).

No seu código, você foi direto para a relação completa (o loop final), mas "esqueceu" de imprimir as listas separadas de nomes e idades que o enunciado pedia antes.

2. A complexidade extra (dicionário dentro de dicionário)
Você criou uma estrutura mais complexa.

  • Pedido: {'Nome': Idade}
  • O que você fez: {'Nome': {'idade': Idade, 'tempo': Tempo}}

Isso é ótimo para sistemas reais, mas dificultou o uso simples do .values(). Se você usar .values() no seu código, ele vai retornar {'idade': 25, 'tempo': 100} e não apenas o número 25.

Continue explorando, Samuel! Você está criando códigos mais avançados que o curso pede, o que é excelente, só atenção para não pular as etapas de base (como o uso simples de keys/values).

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!