Analise o código Python a seguir. L=[0,4,2,8,3,6] for k in(-1, -2, -1): print (L[k]) Os valores exibidos na execução do script acima são
- A)6, 4
Errada, porque a saida nao para em dois valores e ainda troca a ordem dos elementos acessados.
- B)3, 8
Errada, porque os indices negativos usados nao apontam para 3 e 8 nessa ordem.
- C)3, 6, 3
Errada, porque a sequencia de acessos nao gera 3, 6, 3 neste laco.
- D)6, 3, 6
Certa, pois o for percorre -1, -2 e -1, imprimindo L[-1] = 6, L[-2] = 3 e L[-1] = 6.
- E)6, 3, 8
Errada, porque o terceiro acesso repete o ultimo elemento e nao chega ao 8.
Gabarito: D
Em Python, listas aceitam indices negativos. Isso significa que voce pode contar de tras para frente: -1 aponta para o ultimo elemento, -2 para o penultimo, e assim por diante. No exemplo, a lista L = [0, 4, 2, 8, 3, 6] termina com 6 e tem 3 logo antes dele. O laço for percorre a sequencia dada entre parenteses, que aqui é a tupla (-1, -2, -1). Em cada volta, a variavel k recebe um desses valores, e o print mostra L[k]. Ou seja: na primeira volta imprime o ultimo elemento, na segunda o penultimo, e na terceira volta o ultimo de novo. Fazendo a leitura passo a passo: L[-1] = 6, L[-2] = 3 e L[-1] = 6. Por isso a saida exibida é 6, 3, 6, que corresponde ao gabarito D. A ideia cobrada é bem classica de Python em prova: indice negativo nao é erro, e sim uma forma valida de acessar a lista a partir do fim. A banca gosta muito de misturar isso com repeticao de valores no for para ver se voce presta atencao na ordem da iteracao.