6
respostas

laço dentro da inicialização da lista

def jogar(): print("***") print("olá, bem vindo ao jogo de forca") print("***")

palavra_secreta = "banana".upper()
letras_acertadas = ["_" for letra in palavra_secreta]


enforcou = False
acertou = False
erros = 0

while not enforcou and not acertou:

    chute = input("Qual letra?")
    chute = chute.strip().upper()

    if chute in palavra_secreta:
        index = 0
        for letra in palavra_secreta:
            if chute.upper() == letra.upper():
                letras_acertadas[index] = letra
            index += 1
    else:
        erros += 1

    enforcou = erros == 6
    acertou = "_" not in letras_acertadas
    print(letras_acertadas)

if acertou:
    print("Voce ganhou!!")
else:
    print("Voce foi enforcado!!")
print("Fim do jogo!")

if(name == "main"): jogar()

A lista de caracteres "_" que deveria aparecer no começo não aparece e tem uma mensagem dizendo: "local variable 'letra' value is not used".
6 respostas

Poste print da sua tela com o erro ou republique o código formatado corretamente, pois aparentemente não há nada errado com a parte do laço

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

o código está exatamente como o descrito acima, só mudei a palavra secreta dessa vez. Quando eu passo o mouse na "letra" (que tá em vermelho no primeiro print) aparece 'Local variable 'letra' value is not used '.

E qual seria o erro? Você quer que apareça o conteúdo dessa lista junto com a "introdução" do jogo? Se for isso, ocorre porque no código você só coloca para mostrar o conteúdo da lista na tela depois que o usuário faz o chute de uma letra, se quer que mostre antes, tem que por print(letras_acertadas) no mínimo na linha 16, antes do chute = input('Qual a letra?')

Sobre o tal "erro", Local variable 'letra' value is not usedv, quando você utiliza List Comprehensions, a variável temporária ali declarada, no seu caso "letra", é utilizada somente para gerar a lista e após finalizada a atribuição dos valores, ela fica sem utilidade, por isso você vê essa mensagem...

No python tem uma técnica onde você pode utilizar um UNDERLINE no lugar da variável e evitar esse tipo de coisa:

lista = ["_" for _ in "TESTE"]
print(lista)
lista = ["*" for _ in "PALAVRA"]
print(lista)