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

[Dúvida] Logica da atribuição da variável "letra"

def jogar():
    print("***************************************************")
    print("************Bem vindo ao joga da forca!************")
    print("***************************************************")

    palavra_secreta = 'banana'
    letras_acertadas = ["_", "_", "_", "_", "_", "_"]

    enforcou = False
    acertou = False

    while(not enforcou and not acertou):

        chute = input('Qual letra? ')
        chute = chute.strip()
        index = 0

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

        print(letras_acertadas)
        print(letra)

    print("Fim do jogo!")

if(__name__ == "__main__"):
    jogar()
    

Olá! Me surgiu a seguinte dúvida, quando usamos o FOR para gerar a variável "letra" na mesma linha já executamos o loop. Pelo o que entendi essa variável não recebe o valor de "chute", ela serve para validar de algum modo o que tem dentro da "palavra_secreta" só que não entendi como é feito essa verificação já que ela não recebe nenhum valor a principio.

1 resposta
solução!

Olá, Gabriel! Como vai?

Entendo que a lógica do loop for pode ser um pouco confusa no começo, mas vamos esclarecer isso juntos.

Quando você escreve for letra in palavra_secreta:, você está criando um loop que irá percorrer cada caractere (ou letra) da string palavra_secreta. A variável letra irá receber, a cada iteração do loop, o valor do caractere atual.

Por exemplo, se palavra_secreta for "banana", na primeira iteração do loop, letra será "b". Na segunda iteração, letra será "a", e assim por diante, até que todas as letras de "banana" tenham sido atribuídas a letra.

A comparação if(chute.upper() == letra.upper()): é usada para verificar se a letra atual da palavra_secreta (ou seja, o valor atual de letra) é igual ao chute dado pelo usuário. Se for, a linha letras_acertadas[index] = letra substitui o caractere "_" na posição correspondente em letras_acertadas pela letra que o usuário acertou.

Assim, o papel da variável letra é representar cada caractere individual na palavra_secreta enquanto o código percorre a string.

Espero que isso esclareça sua dúvida! Lembre-se, a prática leva à perfeição, então continue codificando e esses conceitos se tornarão mais claros com o tempo. Espero ter ajudado e bons estudos!