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

Não entendi o 'index'

Não entendi o uso do index :(

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

Oi, Mariella! Então, o index é a variável que guarda a posição da letra atual na palavra_secreta. Repare que usamos ela no print, apenas para indicar a posição. Uma alternativa, considerada boa prática, é usar a função enumerate(), que faz a iteração pelo index junto com a letra:

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

Por quê começamos o código com index = 0 e, ai final, abaixo do print() colocamos index = index + 1. Essa parte ficou bastante confusa pra mim.

Já no exemplo que você apresentou, o enumerate() significa que eu vou buscar a posição (index) e a letra dentro da palavra_secreta?

Agora confundi tudo!

solução!

Opa, Mariella, desculpa por confundir mais, hehe :v!

No código que você mandou, começamos definindo a variável index com o valor 0. Logo em seguida, começamos o loop for, que está iterando sobre a palavra_secreta (ou seja, o código dentro desse bloco do loop vai rodar para cada letra da variável palavra_secreta).

Se a letra da vez for a mesma que a letra chutada pelo usuário (chute), o código imprime uma mensagem indicando que encontrou a letra e a posição em que ela foi encontrada. Essa posição está sendo controlada pela variável index, na qual definimos o valor 0 antes do loop. Em cada loop, além de fazermos essa verificação e (caso True) impressão, adicionamos 1 ao index com o index = index + 1, indicando que estamos passando da letra do índice 0 para a letra do índice 1, e assim por diante. Nesse caso, sem o index a gente não teria como saber que posição está a letra que encontramos.

O enumerate(), que eu propus, consegue juntar as duas variáveis letra e index em uma mesma função. Então iteramos sobre o índice e a letra ao mesmo tempo! Olha um exemplo:

palavra_secreta = 'casa'
for index, letra in palavra_secreta:
    print(index, letra)

E o resultado:

0 c
1 a
2 s
3 a

Acho que entendi \o/ ... rs Obrigada, Yan.

Vou praticar e qualquer dúvida retorno ao forum :)