1
resposta

minha solução

def forma_lista_de_convidados() -> set:
    conjunto = set()
    while True:
        nome = input("Digite o nome do convidado: ").strip().title()
        if not nome or nome.isdigit():
            print("Digite um nome válido.")
        elif nome == "Sair":
            return conjunto
        else:
            conjunto.add(nome)

def mostra_iteravel_em_ordem(iteravel) -> None:
    try:
        for indice, item in enumerate(iteravel, start=1):
            print(f"{indice}: {item}")
    except TypeError as e:
        print(f"Erro: objeto não iterável.")

if __name__ == "__main__":
    convidados = forma_lista_de_convidados()
    print("\nConvidados confirmados:")
    mostra_iteravel_em_ordem(convidados)
1 resposta

Olá, Gabriel! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso de conjuntos para evitar duplicidade de nomes em Python, utilizou muito bem funções para organizar o fluxo do programa e ainda compreendeu a importância do tratamento de erros para garantir entradas válidas.

Uma dica interessante para o futuro é ordenar os convidados antes de exibi-los, deixando a lista mais organizada. Assim:

def mostra_iteravel_em_ordem(iteravel) -> None:
    try:
        for indice, item in enumerate(sorted(iteravel), start=1):
            print(f"{indice}: {item}")
    except TypeError:
        print("Erro: objeto não iterável.")

Isso faz com que os nomes apareçam em ordem alfabética, facilitando a visualização da lista final.

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!