1
resposta

[Dúvida] Logica após o Index

alguém pode me ajudar com essa logica? não me entra na cabeça nunca, eu já fiz alguns cursos e por algum motivo sempre que tenho de implementar esse tipo de lógica onde a variavel é ela e mais o incremento eu não consigo entender o porque disso... existe alguma forma de substituir essa logica? pois não consigo entender... , ou alguém consegue me explicar de uma forma que eu entenda? pq tá dificíl eu sei que o indice boa parte dos casos se inicia com 0, só que na hora de implementar a lógica eu não sei que tenho que fazer isso...

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

Olá Ricardo, tudo bem com você?

A variável index será nossa referência de posição, tem como função auxiliar no momento em que estamos percorrendo as letras da palavra secreta com o uso do laço for. Mas seu valor não interfere no laço de repetição for.

Quando temos uma variável que recebe ela mesma e um operador, por exemplo: index = index + 1, estamos informando que devemos pegar o valor atual salvo na variável index, somar 1 e atribuir o resultado da operação novamente a variável index. Conforme o exemplo didático abaixo:

index = 0
index = index + 1
print(index)

Resultado

1

Quanto ao bloco de código apresentado, ele visa percorrer uma palavra (string) analisando letra por letra, neste caso a string salva na variável palavra_secreta. Em uma string cada letra possui um index (posição), a contagem do index de uma string inicia com o zero (0). Sendo assim a posição das letras na palavra banana ficará da seguinte forma:

Letrabanana
Index (posição)012345

Vamos a um exemplo prático onde a palavra secreta será: banana. Executando o código, a variável index recebe inicialmente o valor 0 e nesse momento é iniciado o laço de repetição for letra in palavra_secreta:. A variável letra recebe a primeira letra da palavra secreta (b), a letra que está na posição 0.

Dentro do laço for será realizado a verificação se a palavra inserida pelo usuário na variável chute é igual à letra salva na variável letra, caso não seja será adicionado 1 a variável index, na seguinte linha: index = index + 1. Nesse momento o valor salvo no index será 1.

O laço de repetição for passará para a letra que está na posição 1, note que a posição corresponde ao valor salvo no index, realizando novamente o teste, caso o chute e a letra testada não seja igual será acrescentado um ao index nesse momento o valor salvo no index será 2, realizando esse ciclo até percorrer todas as letras da palavra secreta.

Note que, o valor salvo no índex corresponde a posição da letra capturada pelo laço for.

Quando o chute for igual à letra que foi capturada, a letra será inserida na lista letras_acertadas e receberá como referência de posição o valor salvo atualmente na variável index, isso acontece na seguinte linha: letras_acertadas[index] = letra, e logo após é acrescentado um ao index e o laço continua percorrendo a palavra.

Em resumo temos que a variável index tem o objetivo de ser nossa referência de posição, o valor salvo será o valor que corresponde a posição da letra selecionada pelo laço de repetição for, e será usado para indicar em qual local da lista letas_acertadas devemos adicionar uma letra quando o usuário acertar o chute.

Espero ter lhe ajudado. Em caso de dúvidas estou à disposição.

Não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software