Sunday, May 22, 2016

Loops

Loops podem ser complicados

Vamos escrever um loop (termo para repetição, universalmente adotado) para percorrer uma lista imprimindo seus elementos. Coisa simples agora que você conhece os comandos básicos do Python.

L = [1, 2, 3, 4, 5]
for x in L:
        print(x)
            print('Fim.')
 
A saida deste sript é:
1
2
3
4
5
Fim.

Agora vamos modificar o script ligeiramente e eu gostaria que você estudasse o que acontece e tivesse uma explicação clara do ocorrido. Se você tiver IDLE instalado digite o script e observe sua execução:

L = [1, 2, 3, 4, 5]
    c = 6
for x in L:
                if x < 10:
           L.append(c)
           c = c + 1
       print(x)
        print('Fim.')
A saida observada será:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Veremos o que houve em post futuro. (Dica: você está mexendo no limite da repetição).

Agora analise o que ocorre no script abaixo, quase igual ao anterior:
L = [1, 2, 3, 4, 5]
    c = 6
for x in L[:5]:
                if x < 10:
           L.append(c)
           c = c + 1
       print(x)
            print('Fim.')
Que saida vamos obter? Digite o código no IDLE e execute. O que você esperava é o que ocorre?

(dica: Quando voce fatia (slice) a lista para obter L[:5] o Python faz uma cópia deste pedaço da lista L original. Portanto você passa a ter a lista L original e uma cópia de pedaço, L[:5] )
 

No comments:

Post a Comment