Questão nº 70

Questão de TI - Soluções · FGV EPE 2024 (nº 70)

FGV2024Analista de Gestão Corporativa - TI - SoluçõesTI - Soluções
Gabarito: Aver comentário ↓

Considere o código a seguir, escrito na linguagem de programação Python (versão 3.11.3).

<1> x = []
<2> for i in range(1,10,2):
<3> x.append(i)
<4> y = x
<5> x[1] = 0
<6> z = y[1]

Assinale a opção que indica o valor que z recebe na linha <6>.

Resposta comentada

Gabarito Alternativa A

Em Python, quando você atribui uma lista a outra variável (`y = x`), ambas as variáveis passam a apontar para a mesma lista na memória, não criando uma cópia independente. Isso significa que qualquer alteração feita através de uma variável será visível pela outra.

(A) Correta: O valor de `z` é `0` porque `y` e `x` referenciam a mesma lista. Após o loop, `x` (e consequentemente `y`) é `[1, 3, 5, 7, 9]`. Na linha `<5>`, `x[1]` é alterado para `0`, modificando a lista compartilhada para `[1, 0, 5, 7, 9]`. Assim, `y[1]` também passa a ser `0`.
(B) Incorreta: `1` é o valor do primeiro elemento da lista (`x[0]` ou `y[0]`), não do segundo após a modificação.
(C) Incorreta: `3` era o valor original de `x[1]` (e `y[1]`) antes da linha `<5>`. A armadilha aqui é pensar que `y = x` cria uma cópia independente da lista, o que não acontece em Python para objetos mutáveis como listas; `y` apenas passa a apontar para a mesma lista que `x`.
(D) Incorreta: `z` recebe um único valor (o elemento na posição 1), não uma lista.
(E) Incorreta: `z` recebe um único valor (o elemento na posição 1), não uma lista.

Fonte: FGV EPE 2024 Analista de Gestão Corporativa - TI - Soluções (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