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

Sobre a forma como o for itera sobre os elementos..

O que eu ainda não consegui entender é, como funciona a iteração do for nos elementos? Como ele se movimenta?

Quando utilizamos o list comprehension para mostrar o _ para cada caractere da palavra secreta, ele demonstrava que se movimenta em cada caractere.

palavra_secreta = "maça"
letras_acertadas =  ["_" for letra in palavra_secreta]

Nesse exemplo da aula, o for se movimenta pela linha.

arquivo = open("palavras.txt", "r")
for linha in arquivo:
...     print(linha)

Eu entendo que a primeira variável que definimos, linha ou letra, é apenas uma variável que vai receber a informação do for. Mas como ele se movimenta afinal? No caso do for linha, ele não deveria iterar sobre cada caractere na linha do arquivo?

2 respostas
solução!

Olá, Anderson!

A iteração do for respeita a "menor unidade", digamos assim, do tipo de dado ou arquivo.

No caso de uma string, a "menor unidade" é o caracter/letra. Portanto, o for itera sobre cada letra da string. Se for uma lista, por exemplo, a "menor unidade" é o elemento. Digamos que uma lista possua o conteúdo [ "Verde", "Amarelo", "Azul", "Roxo" ]. Nesse caso a iteração do for será sobre cada elemento: primeiro o elemento "Verde", depois "Amarelo", e assim por diante.

No caso do exemplo da aula, a "menor unidade" de um arquivo txt é a linha. Por isso o for itera sobre a linha toda, ao invés de cada caracter. Se você quiser iterar sobre cada caracter da linha é preciso criar um for aninhado para iterar sobre a variável linha.

Espero ter ajudado.

Caramba, entendi.

Obrigado Marcos, ajudou sim. Perfeito.