Questão nº 30
Questão de Economia de Energia · FGV EPE 2024 (nº 30)
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>.
- A0 (alternativa correta)
- B1
- C3
- D[0, 0, 0, 0, 0]
- E[0]
Resposta comentada
Gabarito Alternativa A
Em Python, quando você atribui uma lista a outra variável (por exemplo, `y = x`), você não cria uma nova lista. Em vez disso, ambas as variáveis passam a ser referências para a mesma lista na memória. Isso significa que qualquer modificação feita através de uma variável afetará a lista que ambas compartilham.
(A) Correta: O valor de `z` é 0 porque `y` referencia a mesma lista que `x`. Após `x[1] = 0`, a lista compartilhada se torna `[1, 0, 5, 7, 9]`, e `y[1]` acessa o segundo elemento dessa lista modificada.
(B) Incorreta: O valor 1 é o primeiro elemento da lista (`x[0]` ou `y[0]`), não o segundo após a modificação.
(C) Incorreta: O valor 3 era o segundo elemento da lista antes da linha `<5>`. Essa alternativa é uma armadilha para quem pensa que `y = x` cria uma cópia independente da lista, e não uma referência ao mesmo objeto.
(D) Incorreta: `z` recebe um único valor, não uma lista. Além disso, a lista final não é `[0, 0, 0, 0, 0]`.
(E) Incorreta: `z` recebe um único valor, não uma lista.
Fonte: FGV EPE 2024 Analista de Pesquisa Energética - Economia de Energia (Caderno Tipo 1). Reproduzida para fins de estudo.