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().
- A)[1, 'oi', 2.5, 1, 'oi', 2.5, 1, 'oi', 2.5, 1, 'oi', 2.5] False True
Correta, porque *= repete a lista 4 vezes e 4 não pertence à sequência, जबकि 'oi' pertence.
- B)[4, 'oioioioi', 10.0] True False
Errada, porque a lista não é convertida em [4, 'oioioioi', 10.0]; ela apenas é repetida.
- C)[1, 'oi', 2.5] False True
Errada, porque a lista é multiplicada por 4 e não permanece com apenas três elementos.
- D)[4, ' oioioioi', 10.0, 4, 'oioioioi', 10.0, 4, ' oioioioi', 10.0, 4, ' oioioioi', 10.0] True False
Errada, porque o conteúdo apresentado não corresponde ao efeito de repetir a lista em Python.
- E)[4, ' oi', 10.0, 4, 'oioi', 10.0, 4, 'oioioi', 10.0, 4, 'oioioioi', 10.0] True True
Errada, porque 4 não está na lista e a repetição não altera as strings desse jeito.
Gabarito: A
Em Python, o operador *= em listas faz a repetição da sequência no próprio objeto. Ou seja, a lista l = [1, 'oi', 2.5] vira a mesma lista repetida 4 vezes, ficando com os elementos [1, 'oi', 2.5, 1, 'oi', 2.5, 1, 'oi', 2.5, 1, 'oi', 2.5]. Depois, o print testa duas condições com o operador in. Em Python, in verifica se um valor aparece como elemento da lista. Então 4 in l é False, porque o número 4 não está dentro dessa lista. Já 'oi' in l é True, porque a string 'oi' aparece várias vezes. Assim, a saída impressa é a lista repetida, seguida de False e True. É um caso clássico de prova: a banca mistura repetição de lista com teste de pertinência para ver se voce confunde valor com índice ou acha que *= transforma tudo em números, o que não acontece. Em resumo: *= repete a lista, in procura um elemento exato, e strings como 'oi' só dão True quando aparecem exatamente assim, sem truques de laboratório.