← Questões de Programação

Programação · FGV · 2021

Questão comentada de Programação

Analise o script Python 3.8 exibido a seguir. L=["A","E","I","O","U"] for k in range(-1, -5, -1): print (L[k+1]) Assinale a saída produzida pela execução desse código.

Gabarito: C

Aqui a ideia central é combinar lista, indexação e laço for. Em Python, a lista L = ["A", "E", "I", "O", "U"] tem índices 0, 1, 2, 3 e 4, mas também aceita índices negativos: -1 aponta para o último elemento, -2 para o penúltimo, e assim por diante. No código, o laço faz k assumir os valores -1, -2, -3 e -4. Só que o programa imprime L[k+1]. Então os acessos ficam, respectivamente, L[0], L[-1+1?] na prática L[-1], L[-2] e L[-3]? Vamos passo a passo: para k = -1, imprime L[0] = A; para k = -2, imprime L[-1] = U; para k = -3, imprime L[-2] = O; para k = -4, imprime L[-3] = I. Ou seja, a saída é A U O I. A banca gosta desse tipo de questão porque mistura o valor do índice do laço com o índice efetivamente usado na lista, e aí muita gente lê rápido e troca a conta. O ponto doutrinário aqui é puro Python: índice negativo conta a partir do fim da sequência, comportamento padrão da linguagem. Portanto, o gabarito C está correto porque o código percorre os valores de k e imprime os elementos da lista nas posições 0, -1, -2 e -3, nessa ordem.

Continue treinando

Questões relacionadas