FC ConcursosFC Concursos

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, é:

  1. 4, 2, 2, 0, 6, 4;
  2. 6, 4, 2, 2, 0, 6, 4, 2, 2;
  3. 6, 4, 2, 2, 0, 6, 4, 2;
  4. 6, 4, 2, 2, 6, 4, 2;
  5. 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

Continue aprendendo