Computação Múltipla Escolha

Quais das seguintes frases são verdadeiras sobre o código? (Selecione duas respostas) nums = [1, 2, 3] vals = nums vals = nums

Quais das seguintes frases são verdadeiras sobre o código? (Selecione duas respostas)

  1. nums = [1, 2, 3]
  2. vals = nums
  3. vals = nums
  1. nums e vals são nomes diferentes da mesma lista
  2. nums e vals são listas diferentes
  3. vals é maior que nums
  4. nums tem o mesmo comprimento que vals

Resolução completa

Explicação passo a passo

Resumo da resposta

Alternativas A e D

O código apresentado utiliza a linguagem de programação Python. Para entender as afirmações corretas, é fundamental compreender como a linguagem lida com variáveis e objetos mutáveis, como listas.

Análise do Código

O trecho de código executa duas operações principais:

  1. nums = [1, 2, 3]: Cria um objeto lista na memória e cria uma referência (nome) chamada nums apontando para ele.
  2. vals = nums: Cria uma nova referência chamada vals apontando para o mesmo objeto que nums.

Em Python, quando você atribui uma variável a outra sem criar uma cópia explícita (como usar .copy() ou fatiamento [:]), apenas o endereço de memória é compartilhado.

Justificativa Detalhada

Vamos analisar cada opção baseada no comportamento de ponteiros em Python:

  • Opção A (Correta): "nums e vals são nomes diferentes da mesma lista"
  • Ao executar vals = nums, não foi criada uma nova lista. O nome vals agora funciona como um apelido para o objeto já existente. Modificar uma lista afeta ambas as variáveis porque elas acessam o mesmo local na memória.
  • Analogia: Imagine dois etiquetas coladas na mesma caixa. Se você ler o conteúdo da caixa usando uma etiqueta, verá o mesmo que vê com a outra.
  • Opção B (Incorreta): "nums e vals são listas diferentes"
  • Isso seria verdade se houvesse uma cópia profunda. Como há apenas uma atribuição direta, existe apenas um objeto de lista na memória.
  • Opção C (Incorreta): "vals é maior que nums"
  • Essa comparação não faz sentido lógico neste contexto. Elas representam o mesmo objeto, portanto, nenhuma é "maior" que a outra.
  • Opção D (Correta): "nums tem o mesmo comprimento que vals"
  • Como nums e vals referenciam o mesmo objeto, todas as propriedades desse objeto são compartilhadas.
  • O comprimento (tamanho) é calculado pelo número de elementos. Como é a mesma lista, o tamanho é idêntico (neste caso, $3$).
  • \text{len(nums)} == \text{len(vals)}

Resumo Comparativo

CaracterísticaSituação RealExplicação
Identidade do ObjetoIgualAmbas apontam para o mesmo endereço de memória (id(nums) == id(vals)).
ConteúdoIdênticoAlterar nums[0] altera vals[0].
Tamanho (Comprimento)IgualAmbos têm 3 elementos.

Conclusão: As duas afirmações verdadeiras são que elas são nomes diferentes da mesma lista e possuem o mesmo comprimento.

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Computação

Ver mais Computação resolvidas

Tem outra questão de Computação?

Cole o enunciado, tire uma foto ou descreva o problema — a IA resolve com explicação completa em segundos.