Considere o código Python a seguir. L=[0,1,1,2,3,5,8,13,21] for k in range(0,len(L),2): print (L[k]) Assinale o resultado exibido pela execução desse código, na IDLE Shell 3.9.9.
- A)1, 2, 5, 13
Errada, porque mistura valores e ignora o primeiro elemento da lista, além de não corresponder aos índices pares do laço.
- B)0, 1, 3, 8, 21, 1, 2, 5, 13, 21
Errada, porque repete a sequência inteira em vez de mostrar apenas os elementos nas posições 0, 2, 4, 6 e 8.
- C)1, 3, 8, 21, 1, 2, 5, 13, 21
Errada, porque começa no valor 1 e ainda desconsidera o primeiro elemento L[0], que também é impresso.
- D)0, 1, 3, 8, 21
Certa, pois o laço percorre os índices pares da lista e imprime exatamente 0, 1, 3, 8 e 21.
- E)0,1, 3, 8
Errada, porque omite o último elemento que ainda é alcançado pelo índice 8 no laço.
Gabarito: D
Em Python, o comando range(0, len(L), 2) gera uma sequência de índices começando em 0, indo até antes de len(L), e pulando de 2 em 2. Como a lista L tem 9 elementos, os índices visitados serão 0, 2, 4, 6 e 8. A cada volta do laço, o código faz print(L[k]), ou seja, imprime o valor guardado naquela posição da lista, e não o índice em si. Isso costuma confundir porque o olho corre para o range, mas o que aparece na tela é o conteúdo da lista. No caso da sequência de Fibonacci dada, L[0]=0, L[2]=1, L[4]=3, L[6]=8 e L[8]=21. Portanto, a execução exibe 0, 1, 3, 8, 21, cada um em uma linha na IDLE Shell. A alternativa D está correta exatamente por seguir esses índices pares até o final da lista. A lógica é simples: range com passo 2 seleciona posições alternadas, e print mostra o elemento da posição escolhida. Em prova, vale lembrar que len(L) não entra como índice, porque o último índice válido é len(L)-1. Então o 9 serve só para limitar o laço, não para ser impresso.