Questão nº 30

Questão de Recursos Energéticos · FGV EPE 2024 (nº 30)

FGV2024Analista de Pesquisa Energética - Recursos EnergéticosRecursos Energéticos
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 (ex: y = x), você não cria uma nova lista. Em vez disso, a nova variável (y) passa a ser uma referência para a mesma lista que a variável original (x) já aponta. Ambas as variáveis "olham" para o mesmo objeto na memória.

  • (A) Correta: A linha <1> inicializa x como uma lista vazia. O loop nas linhas <2> e <3> preenche x com os valores ímpares de 1 a 9, resultando em x = [1, 3, 5, 7, 9]. Na linha <4>, y = x faz com que y se torne uma referência para a mesma lista que x aponta. Ou seja, x e y agora "apontam" para o mesmo objeto [1, 3, 5, 7, 9] na memória. Na linha <5>, x[1] = 0 modifica o elemento na posição de índice 1 da lista para 0. Como x e y referenciam a mesma lista, essa modificação afeta a lista para ambas as variáveis, tornando-a [1, 0, 5, 7, 9]. Finalmente, na linha <6>, z = y[1] atribui a z o valor do elemento na posição de índice 1 da lista referenciada por y, que é 0.
  • (B) Incorreta: O valor 1 é o elemento na posição de índice 0 da lista (y[0]), não na posição 1.
  • (C) Incorreta: O valor 3 era o elemento na posição de índice 1 antes da modificação na linha <5> (x[1] = 0). Esta é a armadilha da banca: assume-se erroneamente que y = x cria uma cópia independente da lista, de modo que a modificação em x não afetaria y. No entanto, em Python, para objetos mutáveis como listas, y = x cria uma nova referência para o mesmo objeto, não uma cópia.
  • (D) Incorreta: [0, 0, 0, 0, 0] seria o valor da lista se todos os seus elementos fossem alterados para 0, o que não acontece com a operação x[1] = 0. Além disso, z = y[1] atribui um único elemento, não uma lista.
  • (E) Incorreta: [0] seria uma lista contendo o valor 0. A operação z = y[1] atribui um único valor numérico a z, não uma lista.

Fonte: FGV EPE 2024 Analista de Pesquisa Energética - Recursos Energéticos (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