FC ConcursosFC Concursos

Questão FC688356

Um desenvolvedor Python escreveu uma função para adicionar itens a uma lista, utilizando um parâmetro padrão. Considere‑se, então, o código a seguir. def adicionar_item(item, lista

Linguagens de Programação para Ciência de Dados

QUADRIX · 2025

Um desenvolvedor Python escreveu uma função para adicionar itens a uma lista, utilizando um parâmetro padrão. Considere‑se, então, o código a seguir.

 

def adicionar_item(item, lista=[]): lista.append(item) print(lista)

 

adicionar_item(“X”) adicionar_item(“Y”) adicionar_item(“Z”)  

 

Com base nessa situação hipotética, assinale a opção que apresenta a saída (output) que será impressa no console pela execução desse script.

  1. [‘X’] [‘X’, ‘Y’] [‘X’, ‘Y’, ‘Z’]
  2. [‘X’] [‘Y’] [‘Z’]
  3. [‘X’, ‘Y’, ‘Z’] [‘X’, ‘Y’, ‘Z’] [‘X’, ‘Y’, ‘Z’]
  4. [‘Z’] [‘Z’, ‘Y’] [‘Z’, ‘Y’, ‘X’]
  5. [‘B’] [‘A’, ‘B’]
Mostrar resposta e comentário

Gabarito

A

Comentário do professor

A saída apresentada é consequência do comportamento do parâmetro padrão em Python quando recebe um objeto mutável como uma lista. O valor padrão [] é criado uma única vez no momento da definição da função, ou seja, é avaliado uma única vez e reaproveitado em chamadas subsequentes.

Na primeira chamada, a lista padrão recebe 'X' e imprime ['X']. Na segunda, a função reutiliza a mesma lista já com 'X', adiciona 'Y' e imprime ['X', 'Y']. Na terceira, adiciona 'Z' à mesma lista e imprime ['X', 'Y', 'Z']. Por isso o console mostra: ['X'] ['X', 'Y'] ['X', 'Y', 'Z'].

Para obter uma lista nova a cada chamada use um sentinel, por exemplo: def adicionar_item(item, lista=None): if lista is None: lista=[].

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo