1
resposta

Porque meu .strip() não funciona ?


print("==================")
print("seja bem vindo!")
print("==================")

seu_nome = (input("digite seu nome aqui:"))
seu_nome = seu_nome.capitalize()
seu_nome = seu_nome.strip()
print("seu nome é", seu_nome)

codigo_sc = 10
rodada = 1
total_de = 3

for rodada in range (1, total_de + 1):
    print("tentativa {} de {}.".format(rodada, total_de))
    chute_c = int (input("digite o codigo de segurança:"))

    if(chute_c == codigo_sc):
        print("você acertou!")
        break
    else:
        print("você errou!")

lista_de_nomes = ["luigge", "cibele", "william", "lucca"]
lista_de_nomes = lista_de_nomes.strip()
pedido_de_nome = input("fale aqui um nome de um membro de sua familía!:")

if(pedido_de_nome in lista_de_nomes):
    print("acesso concedido!")
else:
    print("acesso negado!")



print("agora voce vai ter que adivinhar uma palavra hahah!")

palavra_sc = "amor"
enforcou = False
acertou = False
letras_acertadas = ["_", "_", "_", "_"]

print(letras_acertadas)

while(not enforcou and not acertou):
    chute_c = input("digite uma letra:")
    chute_c = chute_c.strip()

    index = 0
    for letra in palavra_sc:
        if(chute_c.upper() == letra.upper()):
            letras_acertadas[index] = letra
1 resposta

Olá Luigge, tudo bem com você?

Peço desculpas pela demora em lhe responder.

Os objetos do tipo lista no Python não possuem o método .strip(), este método é exclusivo dos objetos do tipo string. Assim, no código não podemos realizar a chamada do método .strip() na lista lista_de_nomes. Caso queira aplicar o método .strip() nas strings que estão na lista, será necessário percorrermos os itens e aplicarmos o método em cada item e salvar o resultado em uma lista.

Peço que remova o uso do método .strip() na lista lista_de_nomes. Para que não seja apresentado o erro AttributeError: 'list' object has no attribute 'strip'.

Uma das formas que podemos percorrer os itens de uma lista do Python será utilizando o laço de repetição for e adicionando o resultado em uma segunda lista, que será utilizada na verificação da entrada do usuário. Abaixo apresento essa implementação.

lista_de_nomes = ["luigge  ", "cibele  ", "  william", "  lucca"]
lista_de_nomes_apos_strip = []
for nome in lista_de_nomes:
    lista_de_nomes_apos_strip.append(nome.strip())

Código completo com a mudança já aplicada

print("==================")
print("seja bem vindo!")
print("==================")

seu_nome = (input("digite seu nome aqui:"))
seu_nome = seu_nome.capitalize()
seu_nome = seu_nome.strip()
print("seu nome é", seu_nome)

codigo_sc = 10
rodada = 1
total_de = 3

for rodada in range (1, total_de + 1):
    print("tentativa {} de {}.".format(rodada, total_de))
    chute_c = int (input("digite o codigo de segurança:"))

    if(chute_c == codigo_sc):
        print("você acertou!")
        break
    else:
        print("você errou!")

lista_de_nomes = ["luigge  ", "cibele  ", "  william", "  lucca"]
lista_de_nomes_apos_strip = []
for nome in lista_de_nomes:
    lista_de_nomes_apos_strip.append(nome.strip())
pedido_de_nome = input("fale aqui um nome de um membro de sua familía!:")

if(pedido_de_nome in lista_de_nomes_apos_strip):
    print("acesso concedido!")
else:
    print("acesso negado!")

print("agora voce vai ter que adivinhar uma palavra hahah!")

palavra_sc = "amor"
enforcou = False
acertou = False
letras_acertadas = ["_", "_", "_", "_"]

print(letras_acertadas)

while(not enforcou and not acertou):
    chute_c = input("digite uma letra:")
    chute_c = chute_c.strip()

    index = 0
    for letra in palavra_sc:
        if(chute_c.upper() == letra.upper()):
            letras_acertadas[index] = letra

Após a mudança indicada acima, salve o arquivo e execute-o.

Espero ter ajudado. Em caso de dúvidas estou à disposição.

Abraços e bons estudos!

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