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

01 Encontrando letras - duvidas sobre variavel criada no comando for

no codigo:

def jogar():

    print ("***********************************")
    print ( '****Bem vindos ao jogo de Forca***')
    print ("***********************************")

    palavra_secreta = "banana"
    enforcou = False
    acertou = False

    while(not enforcou and not acertou):

        chute = input("Qual Letra? ")

        index = 0
        for letra in palavra_secreta:
            if(chute == letra):
                print("Encontrei a letra {} na posição {}".format(letra, index))
            index = index + 1

        print("jogando...")

    print("Fim do Jogo")

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

Estou utilizando o comando "for letra in palavra_secreta:" porem não entendi como este comando funciona se eu não informei a variável letras em lugar algum posteriormente. poderiam me explicar? quer dizer que eu posso colocar qualquer palavra depois do "for" que automaticamente o python transformara isso em variável? Exemplo: for elefante in palavra? aqui elefante seria a variável?

2 respostas
solução!

Olá!

A sintaxe do loop com for na linguagem Python é mais enxuta do que normalmente é visto em outras linguagens de programação.

É comum adotarmos o seguinte padrão quando lidamos com loop for em outras linguagens:

const vetor = ["Arroz", "Feijão", "Batata"];

for (let i = 0; i < vetor.length; i++) {
    console.log(vetor[i]);
}

Output: Arroz Feijão Batata

No cenário acima, é preciso declarar uma variável contadora para iterar cada posição do vetor e acessando o valor com vetor[i], por exemplo.

Trazendo isso para o ambiente Python, teríamos o seguinte cenário:

vetor = ["Arroz", "Feijão", "Batata"]

for fruta in vetor:
    print(fruta)

Output: Arroz Feijão Batata

O resultado final é o mesmo, porém, ao invés do loop percorrer um valor inteiro que é incrementado após cada iteração (Exemplo 1), o loop for no Python percorre diretamente os valores da lista/string informada após o in.

Resumindo, a variável que você citou na postagem sempre irá conter o valor da posição atual do array, seja ela uma lista ou uma string, além de ser acessada somente no próprio looping. (Se desejar usar o valor da variável fora do loop, é preciso repassar para uma variável externa a ele.)

Obrigado Douglas ! Eu estava com a mesma duvida.