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

[Dúvida] Resolução e dúvida sobre esse assunto


while True:
    added_person = input("Digite o nome do convidado: ")
    
    if added_person.lower() == 'sair':
        break
   
    people.add(added_person.capitalize()) # por algum motivo eu não consigo usar o .split() nesse caso, então os valores vem podendo deixar espaços mesmo

print(f"Convidados confirmados: {', '.join(people)}")

Normalmente, pra testar meus conhecimentos básicos, eu tento deixar a entrada com input ou com um regex ou com um combo de .capitalize().split() para que os dados na saída saiam de forma organizada, só que nesse caso por algum motivo eu não consigo ajeitar usando esse método e algo como:

Digite o nome do convidado:    david
Digite o nome do convidado:    pedro matos      
Digite o nome do convidado: joão pedro
Digite o nome do convidado: Carlos Da costa
Digite o nome do convidado: sair
Convidados confirmados: João pedro, Carlos da costa,    pedro matos      ,    david

acaba sendo válido para o código. Como é que eu resolvo esse problema?

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta
solução!

Olá! Tudo bem?

O problema que você está enfrentando é que o método .split() não é necessário para o que você está tentando fazer, já que ele é usado para dividir strings em listas com base em um delimitador, e não para remover espaços desnecessários.

Para resolver o problema dos espaços extras, você pode usar o método .strip(), que remove espaços em branco no início e no final de uma string. Além disso, para garantir que os nomes estejam com a primeira letra maiúscula e o restante minúsculo, você pode usar o método .title(). Aqui está como você pode ajustar seu código:

people = set()

while True:
    added_person = input("Digite o nome do convidado: ").strip()
    
    if added_person.lower() == 'sair':
        break
   
    people.add(added_person.title())

print(f"Convidados confirmados: {', '.join(people)}")

Com essas alterações, o código irá remover espaços extras e formatar os nomes corretamente. Por exemplo, se você digitar " david", "pedro matos ", ou "Carlos Da costa", a saída será formatada como "David", "Pedro Matos", "Carlos Da Costa", etc.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.