Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

De onde surgiu o "letra"?

Boa noite pessoal. Minha dúvida é de onde surgiu o "letra", e como ele entendeu que o input do chute é a letra da palavra secreta.

   while(not enforcou and not acertou):
        chute = input("Qual a letra?")
        index = 0
        for letra in palavra_secreta:
                if(chute.lower()==letra.lower()):
                    #print("Encontrei a letra {} na posição {}".format(letra,index))
                    letras_acertadas[index]=letra

Quando peço pra ele imprimir letra, é exatamente meu input, mas de onde surgiu isso? Parece uma função built-in para mim, da forma que foi chamada.

Desde já obrigado pela atenção.

2 respostas
solução!

Oi Gustavo, tudo bem?

Uma string em Python é como uma lista de caracteres, sendo assim, podemos iterar nela utilizando o laço for. Como no exemplo que você mostrou:

for letra in palavra_secreta:

Nesse caso ele usa letra como cada caractere na palavra_secreta. OBS: não é obrigatório usar letra, poderia ser "for x in palavra" por exemplo.

Sendo assim, se a palavra secreta for "Laranja", a primeira vez que entrar no for a letra será "L", a segunda vez será a letra "a", e assim por diante.

Para entender que a letra do input está na palavra ele faz a comparação no if e utiliza o .lower() para comparar as duas letrar como minúsculas (para não haver distinção entre maiúscula e minúscula na palavra e no input). Se achar a letra na palavra ele salva na lista de palavras acertadas no index (posição) da letra (lembrando que o index vai incrementando 1 a cada iteração do for, acho que cortou isso no código que você colocou).

Entendi! Ele inicializa no próprio for o "letra". Obrigado!