Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Gerenciando inscrições

participantes = { 

    "Workshop 1": {"Alice", "Bruno", "Carla", "Diego"}, 

    "Workshop 2": {"Fernanda", "Gustavo", "Helena"} 
} 


def obter_nome() -> str:
    while True:
        entrada = input('Digite o nome do participante a ser removido: ').strip().title()
        if not entrada:
            print('O nome não pode ser vazio. Tente novamente.')
            continue

        if not entrada.replace(" ", "").isalpha():
            print('O nome deve conter apenas letras. Tente novamente.')
            continue
        return entrada


def remover_nome_obtido(participantes: dict) -> None:
    while True:
        nome = obter_nome()
        encontrado = False
        for workshop, nomes in participantes.items():
            if nome in nomes:               
                nomes.remove(nome)
                print(f'O nome "{nome}" foi removido do {workshop}')
                encontrado = True
                break
        
        if encontrado:
            break
        else:
            print(f'O nome "{nome}" não foi encontrado em nenhum workshop. Tente novamente.')



def exibir_participantes_atualizados(participantes: dict) -> str:
    nova_lista = []
    for workshop, nomes in participantes.items():
        if nomes:
            nova_lista.append(f"{workshop}: {', '.join(sorted(nomes))}")
        else:
            nova_lista.append(f"{workshop}: Nenhum participantes.")
    return '\n'.join(nova_lista)


def main():
    participantes = { 

    "Workshop 1": {"Alice", "Bruno", "Carla", "Diego"}, 

    "Workshop 2": {"Fernanda", "Gustavo", "Helena"} 
} 
    
    remover_nome_obtido(participantes)
    
    print('\nLista atualizada de participantes:')
    print(exibir_participantes_atualizados(participantes))


if __name__ == '__main__':
    main()
1 resposta
solução!

Olá, Matheus! Como vai?

Muito bem! Continue resolvendo os desafios e compartilhando com a comunidade Alura.

Observei que você explorou o uso de dicionários para organizar os dados por categoria, utilizou muito bem o controle de fluxo com while e if para a validação de entrada e ainda compreendeu a importância do encapsulamento em funções para manter o código limpo e reutilizável.

Uma dica interessante para o futuro é usar str.casefold() para comparar strings de forma mais segura, ignorando diferenças de acentuação e maiúsculas/minúsculas. Dessa forma:

entrada = input("Digite o nome: ").strip().casefold()
nome = nome_do_participante.casefold()
if entrada == nome:
    print("Nome encontrado!")

Resultado: Evita problemas ao comparar nomes como "José" e "jose", por exemplo.

Isso faz com que sua verificação de nomes fique mais robusta, mesmo com diferenças sutis na digitação.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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