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.
- [‘X’] [‘X’, ‘Y’] [‘X’, ‘Y’, ‘Z’]
- [‘X’] [‘Y’] [‘Z’]
- [‘X’, ‘Y’, ‘Z’] [‘X’, ‘Y’, ‘Z’] [‘X’, ‘Y’, ‘Z’]
- [‘Z’] [‘Z’, ‘Y’] [‘Z’, ‘Y’, ‘X’]
- [‘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