Questão nº 45

Questão de Tecnologia da Informação · FGV TJ-AP 2024 (nº 45)

FGV2024Analista Judiciário - TI - Desenvolvimento de SistemasTecnologia da Informação
Gabarito: Cver comentário ↓

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

Resposta comentada

Gabarito Alternativa C

Em Python, índices negativos em listas contam os elementos a partir do final (por exemplo, L[-1] é o último elemento). O operador módulo (%) com números negativos em Python sempre retorna um resultado com o mesmo sinal do divisor (se o divisor for positivo, o resultado será positivo ou zero), o que é útil para "enrolar" índices em listas.

(A) Incorreta: Esta alternativa está incorreta porque a sequência de resultados não corresponde aos cálculos do loop, sendo mais curta e com valores iniciais diferentes.
(B) Incorreta: Esta alternativa está incorreta porque inclui um valor extra ('2') no final da sequência, o que não ocorre na execução do código. A função range(4, -4, -1) gera os números 4, 3, 2, 1, 0, -1, -2, -3, totalizando 8 iterações, e não 9.
(C) Correta: Esta é a alternativa correta. Vamos analisar passo a passo:
A lista é L = [0, 1, 1, 2, 3], e len(L) é 5.
O loop for k in range(4, -4, -1) faz k assumir os valores: 4, 3, 2, 1, 0, -1, -2, -3.

  1. k = 4: L[4] (que é 3) + L[4 % 5] (que é L[4], ou 3) = 3 + 3 = 6
  2. k = 3: L[3] (que é 2) + L[3 % 5] (que é L[3], ou 2) = 2 + 2 = 4
  3. k = 2: L[2] (que é 1) + L[2 % 5] (que é L[2], ou 1) = 1 + 1 = 2
  4. k = 1: L[1] (que é 1) + L[1 % 5] (que é L[1], ou 1) = 1 + 1 = 2
  5. k = 0: L[0] (que é 0) + L[0 % 5] (que é L[0], ou 0) = 0 + 0 = 0
  6. k = -1: L[-1] (que é 3, o último elemento) + L[-1 % 5] (que é L[4], ou 3, pois -1 % 5 em Python é 4) = 3 + 3 = 6
  7. k = -2: L[-2] (que é 2, o penúltimo elemento) + L[-2 % 5] (que é L[3], ou 2, pois -2 % 5 em Python é 3) = 2 + 2 = 4
  8. k = -3: L[-3] (que é 1, o antepenúltimo elemento) + L[-3 % 5] (que é L[2], ou 1, pois -3 % 5 em Python é 2) = 1 + 1 = 2

A sequência de resultados é 6, 4, 2, 2, 0, 6, 4, 2.
(D) Incorreta: Esta alternativa está incorreta porque a sequência de resultados não corresponde aos cálculos do loop, faltando o valor '0' e tendo um comprimento diferente.
(E) Incorreta: Esta alternativa está incorreta porque a sequência de resultados não corresponde aos cálculos do loop, faltando um '2' e tendo um comprimento diferente.

Fonte: FGV TJ-AP 2024 Analista Judiciário - TI - Desenvolvimento de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho