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

Não consegui entender como o index consegue achar as posições das letras

Não consegui entender como o index consegue achar as posições das letras

2 respostas
solução!

Na verdade não é a variável index que encontra a posição da letra, ela é somente uma variável que guarda um número que "simbolicamente" serve para se referir a posição da letra dentro da lógica de pesquisa criada na aula. Abaixo eu tentarei detalhar o máximo possível sobre essa parte da aula:

Uma string (palavra, frase, etc) é na verdade um conjunto de caracteres (conhecido por char), vamos usar a palavra ABELHA como exemplo para entender como o script de pesquisa encontra a posição da letra L na palavra ABELHA por exemplo:

A palavra "abelha" é composta por 6 caracteres, cada caractere tem uma posição, iniciando de 0 até 5 (conte nos dedos de 0 até 5 e no final terá um total de 6), então, é criado uma variável chamada "index" com valor inicial 0 para nos servir de identificação da posição atual das letras dentro do loop FOR que será criado a seguir:

index = 0

Logo a seguir, é criado um loop FOR, que executará seu bloco de código 6 vezes, uma vez para cada caractere da palavra "abelha" (se for outra palavra, executará a quantidade de vezes correspondente ao número de letras que há nessa palavra):

for caractere in "ABELHA":

Agora dentro do bloco de código do recém criado loop FOR, temos que trabalhar nossa lógica, o objetivo da aula é pegar a posição de uma ou mais letras que desejamos caso ela exista na palavra do nosso exemplo, "abelha". Para isso agora precisamos colocar no nosso bloco de código uma incrementação na nossa variável index, para que cada vez que o loop FOR for executado, ele simbolize uma posição a frente da anterior (isso vai ficar claro logo a frente):

for caractere in "ABELHA":
    if caractere == "L":
        print(index)

    index += 1

Vamos finalmente a compreenção do funcionamento no código acima:

Como citado anteriormente, a palavra "abelha" é composta de 6 caracteres, de forma didática, para o computador ela e as posições de cada letra contida nela é vista dessa forma:

  • Letras: | A | B | E | L | H | A |
  • Posições: | 0 | 1 | 2 | 3 | 4 | 5 |

Então, temos uma variável chamada index que inicia com valor 0, simbolizando de forma simulada a posição 0 da palavra "abelha", que é referente a primeira letra A.

Quando o loop FOR for executado pela primeira vez, ele vai comparar a primeira letra A com o L que queremos, que não são iguais, então ele não executa o bloco de código do nosso IF e pula para a instrução seguinte, que é quando adicionamos o valor 1 à variável index, que agora tem valor 1.

Nosso loop FOR agora é executado pela segunda vez, vai comparar a letra B com o L que queremos, que novamente não sao iguais então ele não executa a instrução print() contida dentro do nosso IF, novamente a variável index é inclementada com o valor 1 e agora passa a valer 2.

O loop FOR agora é executado pela terceira vez, na linha do IF é feito agora a comparação da letra E com a letra L que queremos, novamente vai falhar e é executado novamente uma inclementação da variável index em 1, e agora ela passa a valer 3.

Para nossa alegria, agora é executado o loop for pela quarta vez, de seis. Na comparação do IF temos agora a comparação do L com L, retornará True por se tratar de uma comparação verdadeira e ele executa a função print() para mostrar na tela o valor da variável index, que tem valor 3 agora. Se você olhar na tabela que fizemos acima, 3 é referente a letra L na palavra ABELHA

A partir de agora o loop for repete a comparação das letras restantes, falha na comparação e incrementa o valor index. Por fim acaba.

Se nessa mesma palavra de exemplo nós colocássemos para comparar com a palavra A, no console iria mostrar os números 0 e 5, referentes a posição 0 e 5 da palavra ABELHA que são as posiçãos das letras A contidas na palavra.

A string é uma sequencia de caracteres, então podemos comprar essa sequencia como uma lista. Se uma lista vemos: lista = ["João","Pedro","Paulo"] Entendemos que o index 0 será o João, por exemplo. Em uma string, vemos: frase = "João é amigo de Pedro e Paulo" Se "convertemos" isso pra uma lista, entenderíamos como: frase = ["J","o","ã","o"," ","é"," ","a".....] Então, vendo esse exemplo, a lista quando passado o index, como por exemplo print(frase[0]), vai encontrar a letra J. Se fosse um print(frase[2]) então seria ã, e assim por diante.