Analise o código Python apresentado abaixo e marque a opção que apresenta a saída co...
Responda: Analise o código Python apresentado abaixo e marque a opção que apresenta a saída correta.----------------------------------def modificar(v, l):v = 4l.append(4)
💬 Comentários
Confira os comentários sobre esta questão.

Por Sumaia Santana em 31/12/1969 21:00:00
Gabarito: Alternativa B
Por que a alternativa B é o gabarito?
Para compreender o resultado apresentado, é essencial lembrar como o Python trata as variáveis e os tipos de dados quando são passados a uma função. O ponto central está na diferença entre objetos mutáveis e imutáveis.
Dentro da função modificar(v, l), o parâmetro v representa um número inteiro (que é imutável) e l corresponde a uma lista (que é mutável). Isso faz toda a diferença no comportamento do código.
Quando a função é executada, o comando v = 4 cria uma nova referência local para o valor 4, sem alterar o conteúdo de v fora da função. Já o comando l.append(4) modifica diretamente a lista original, pois listas permitem alteração em seus elementos. Em seguida, l = [1, 2, 3] apenas substitui a referência dentro da função, sem impactar a lista original, já que se trata de uma nova lista criada localmente.
Assim, ao término da execução, o valor de v permanece o mesmo no escopo externo (5), enquanto a lista original recebeu um novo item, ficando [1, 2, 3, 4].
Quando o programa executa print(v, l.pop()), o valor de v continua sendo 5 e o método pop() remove e exibe o último elemento da lista — o número 4.
Resultado: 5 4.
Por que as demais alternativas estão erradas?
A - 4 4: Incorreta, pois ignora que v fora da função não é afetado pelas mudanças dentro dela.
C - 4 3: Incorreta, pois v é 5 e l.pop() remove o último elemento que foi adicionado, não o terceiro.
D - 5 3: Incorreta, porque, embora v esteja correto, l.pop() deve retornar o último elemento adicionado à lista.
Por que a alternativa B é o gabarito?
Para compreender o resultado apresentado, é essencial lembrar como o Python trata as variáveis e os tipos de dados quando são passados a uma função. O ponto central está na diferença entre objetos mutáveis e imutáveis.
Dentro da função modificar(v, l), o parâmetro v representa um número inteiro (que é imutável) e l corresponde a uma lista (que é mutável). Isso faz toda a diferença no comportamento do código.
Quando a função é executada, o comando v = 4 cria uma nova referência local para o valor 4, sem alterar o conteúdo de v fora da função. Já o comando l.append(4) modifica diretamente a lista original, pois listas permitem alteração em seus elementos. Em seguida, l = [1, 2, 3] apenas substitui a referência dentro da função, sem impactar a lista original, já que se trata de uma nova lista criada localmente.
Assim, ao término da execução, o valor de v permanece o mesmo no escopo externo (5), enquanto a lista original recebeu um novo item, ficando [1, 2, 3, 4].
Quando o programa executa print(v, l.pop()), o valor de v continua sendo 5 e o método pop() remove e exibe o último elemento da lista — o número 4.
Resultado: 5 4.
Por que as demais alternativas estão erradas?
A - 4 4: Incorreta, pois ignora que v fora da função não é afetado pelas mudanças dentro dela.
C - 4 3: Incorreta, pois v é 5 e l.pop() remove o último elemento que foi adicionado, não o terceiro.
D - 5 3: Incorreta, porque, embora v esteja correto, l.pop() deve retornar o último elemento adicionado à lista.
⚠️ Clique para ver os comentários
Visualize os comentários desta questão clicando no botão abaixo
Ver comentários