Pular para o conteúdo principal

Questão de Programação — Python — FGV 2024

ProgramaçãoPython
Código
fg075155
Banca
FGV
Órgão
AL-PR
Ano
2024
Nível
Superior
Cargo
Analista Legislativo - Desenvolvedor de Sistemas
Considere o seguinte trecho de código, desenvolvido utilizando-se a linguagem de programação Python:l = [1,'oi',2.5] l *= 4 print(l, 4 in l, 'oi' in l) Assinale a opção que indica a saída impressa pela função print().
  1. A[1, 'oi', 2.5, 1, 'oi', 2.5, 1, 'oi', 2.5, 1, 'oi', 2.5] False True
  2. B[4, 'oioioioi', 10.0] True False
  3. C[1, 'oi', 2.5] False True
  4. D[4, ' oioioioi', 10.0, 4, 'oioioioi', 10.0, 4, ' oioioioi', 10.0, 4, ' oioioioi', 10.0] True False
  5. E[4, ' oi', 10.0, 4, 'oioi', 10.0, 4, 'oioioi', 10.0, 4, 'oioioioi', 10.0] True True
Revelar gabarito e comentário

GabaritoA — [1, 'oi', 2.5, 1, 'oi', 2.5, 1, 'oi', 2.5, 1, 'oi', 2.5] False True

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Operador de multiplicação de listas e operador in em Python

Gabarito: letra A. A expressão l *= 4 repete a lista original quatro vezes, resultando em [1, 'oi', 2.5, 1, 'oi', 2.5, 1, 'oi', 2.5, 1, 'oi', 2.5]. Os testes 4 in l e 'oi' in l avaliam, respectivamente, False (pois o inteiro 4 não está na lista) e True (pois a string 'oi' está presente). Apenas a alternativa A reflete exatamente essa saída.

A questão testa dois conceitos fundamentais do Python: (1) a multiplicação de uma lista por um inteiro n produz uma nova lista com seus elementos repetidos n vezes; (2) o operador in verifica a presença de um elemento na sequência, retornando True ou False.

Alternativa A — ✅ Correta ⟵ GABARITO

A lista original [1, 'oi', 2.5] é repetida 4 vezes, gerando uma lista com 12 elementos. O 4 in l retorna False porque 4 não é um dos elementos; 'oi' in l retorna True. A saída impressa será exatamente a sequência de valores listada.

Alternativa B — ❌ Incorreta

A multiplicação da lista não transforma os elementos individualmente; ela apenas repete a sequência. O resultado não é [4, 'oioioioi', 10.0], que seria obtido se cada elemento fosse multiplicado separadamente (ex.: l[0]*4, l[1]*4, l[2]*4). Além disso, 4 in l seria True se houvesse o elemento 4, mas não há na saída correta.

Alternativa C — ❌ Incorreta

Afirma que a lista permanece inalterada, ou seja, sem repetição. O operador *= modifica a lista in-place (para listas, l *= n equivale a l.extend(l * (n-1))), produzindo uma lista maior. A saída correta tem 12 elementos, não 3.

Alternativa D — ❌ Incorreta

Repete a lista, mas os elementos individuais são incorretamente transformados: o número 1 vira 4, a string 'oi' vira ' oioioioi' (com um espaço extra), e o float 2.5 vira 10.0. Isso seria o resultado de aplicar uma operação de multiplicação a cada elemento, não de repetir a estrutura da lista. Além disso, 4 in l seria True nessa saída, mas no código correto é False.

Alternativa E — ❌ Incorreta

A lista cresce, mas os elementos vão sendo transformados progressivamente: o 1 vira 4, o 'oi' ganha um 'oi' adicional a cada repetição, e o 2.5 vira 10.0. Esse comportamento não corresponde à multiplicação de listas. O operador in para 4 retornaria True nessa saída, contrariando o código real.

PEGA ESSA DICA!

Lembre-se: lista * n repete a sequência de elementos; elemento * n (quando elemento é número ou string) modifica o valor. A banca explora justamente essa confusão entre repetir a lista e multiplicar os itens.

Gabarito: letra A.

Link permanente: /questoes/fg075155