Questão FC331121
Analise o código Python a seguir. L=[0,1,1,2,3] for k in range(4, -4, -1): print (L[k] + L[k % len(L)]) O resultado da execução desse código, na ordem, é:
Linguagens de Programação
FGV · 2024
Analise o código Python a seguir.
L=[0,1,1,2,3]
for k in range(4, -4, -1):
print (L[k] + L[k % len(L)])
O resultado da execução desse código, na ordem, é:
- 4, 2, 2, 0, 6, 4;
- 6, 4, 2, 2, 0, 6, 4, 2, 2;
- 6, 4, 2, 2, 0, 6, 4, 2;
- 6, 4, 2, 2, 6, 4, 2;
- 6, 4, 2, 0, 6, 4, 2.
Mostrar resposta e comentário
Gabarito
Certo
Comentário do professor
O laço usa range(4, -4, -1), portanto os valores de \(k\) são \(4,3,2,1,0,-1,-2,-3\).
A lista é L = [0,1,1,2,3]. Em cada iteração soma-se L[k] com L[k % len(L)], onde len(L)=5.
Para \(k\ge0\), \(k\%5=k\), então soma-se o elemento com ele próprio:
\(k=4:\;L[4]+L[4]=3+3=6\)
\(k=3:\;2+2=4\)
\(k=2:\;1+1=2\)
\(k=1:\;1+1=2\)
\(k=0:\;0+0=0\)
Para \(k<0\), o índice negativo acessa elementos a partir do fim e o operador \(\%\) retorna o equivalente positivo (por exemplo, \(-1\%5=4\)), logo também soma o mesmo elemento duas vezes:
\(k=-1:\;3+3=6\)
\(k=-2:\;2+2=4\)
\(k=-3:\;1+1=2\)
Resultado final, na ordem: 6, 4, 2, 2, 0, 6, 4, 2.
Conteúdo do catálogo FC Concursos · Atualizado em