1
resposta

[Projeto] convidados

convidados = set()

while True:
    nome = input("Digite o nome do convidado: ").lower()
    if nome == 'sair':
        break
    if nome in convidados:
        print('Esse nome já foi adicionado')
    
    convidados.add(nome)

print(f'Convidados confirmados: {', '.join(convidados)}')
1 resposta

Oii, João! Como vai?

Mandou muito bem na resolução! Gostei bastante que você foi além do enunciado e implementou uma verificação (if nome in convidados) para avisar o usuário que o nome já foi adicionado. Isso melhora muito a experiência de quem usa o programa!

Tenho apenas dois pontos de atenção para deixar seu código perfeito:

1. Aspas dentro da f-string (erro de sintaxe)
Na última linha, você usou aspas simples (') para fechar a f-string e também aspas simples dentro do método .join(). Isso confunde o Python, pois ele acha que a string terminou antes do tempo.

  • Onde está: f'Convidados confirmados: {', '.join(convidados)}'
  • Correção: Alterne entre aspas simples e duplas.

2. Formatação dos nomes
Você usou .lower() na entrada. Isso é ótimo para garantir que "Ana" e "ana" sejam considerados a mesma pessoa. Porém, na hora de imprimir, os nomes sairão todos minúsculos (ex: "ana, joão"). Para nomes próprios, o ideal é usar .title() (que deixa a primeira letra maiúscula) ou .strip() (apenas para limpar espaços), mantendo a formatação bonita

Uma sugestão de como ajustar esses detalhes:

convidados = set()

while True:
    # Usando .title() para salvar como "Ana" em vez de "ana"
    nome = input("Digite o nome do convidado: ").title()

    if nome == 'Sair': # Lembrar de checar com a primeira maiúscula também
        break

    if nome in convidados:
        print('Esse nome já foi adicionado')
    else:
        convidados.add(nome)

# Note o uso de aspas duplas fora e simples dentro (ou vice-versa)
print(f"Convidados confirmados: {', '.join(convidados)}")
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!