Segue a minha resolução do workshop baseado no motivo maratona.
Meu aprendizado na Alura esta sendo muito produtivo e gratificante
#@thiagotensai God is Good!
#Biblioteca Regex
import re
''' Programa apresenta:
_Os nomes de todos os participantes.
_As idades de todos os participantes.
_Remove um participante
_Uma relação completa com o nome e a idade de cada um.
'''
#Dicionário Participantes
participantes = {
"Equipe 1": {
"Rafael": 43,
"Henrique": 42,
"Grazy": 42,
"Thiago": 41
},
"Equipe 2": {
"Felipe": 39,
"Nayara": 39,
"Amanda": 38,
"Bruno": 37,
}
}
print('===Maratona===')
#keys-Retorna Chaves (['nome', 'idade'])
print ("Nomes dos participantes:")
for equipe in participantes.values():
print (", ".join(equipe.keys()))
#values-Retorna Valores (['Thiago' , '41'])
print("\nIdades dos participantes:")
for equipe in participantes.values():
print (" anos, ".join(str(idade) for idade in equipe.values()))
#items-Retorna como tuplas ([('nome', 'Thiago'),(['idade', '41')])
print ("\nParticipantes e suas idades:")
for equipe_nome, equipe in participantes.items():
print (f"\n{equipe_nome}:")
#items-Retorna como tuplas ([('nome', 'Thiago'),(['idade', '41')])
for nome, idade in equipe.items():
print (f"- {nome}: {idade} anos")
#---Função Validar Texto---
def validar_texto(texto):
#Aceita apenas letras e espaços (inclui acentos).
return bool(re.fullmatch(r"[A-Za-zÀ-ÿ\s]+", texto))
#-------Remover Participante-----
nome_remover = input("\nDigite o nome do participante a ser removido: ").strip()
if not validar_texto(nome_remover):
print ("Nome inválido. Apenas letras e espaços.")
else:
#values-Retorna Valores (['Thiago' , '41'])
for equipe in participantes.values():
if nome_remover in equipe:
#del-Deleta no Dicionário ['nome']
del equipe[nome_remover]
print (f"{nome_remover} removido com sucesso!")
break
else:
print ("Participante não encontrado.")
''' nomes.discard(nome_remover)-Remove Item
'''
#Resultado
print ("\nLista atualizada:")
#items-Retorna Tuplas
for equipe_nome, equipe in participantes.items():
print (f"{equipe_nome}: {equipe}")