Seja o seguinte programa Python: a = [1, 4, 8] b = [-1, 6,...
a = [1, 4, 8]
b = [-1, 6, 2]
c = a*2+b*0
print(c)
O que será exibido no console quando esse programa for executado?
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: B - [1, 4, 8, 1, 4, 8]
Vamos entender como chegamos a essa resposta, revisando os conceitos e a lógica do código em Python apresentado na questão.
Tema da questão: A questão aborda a manipulação de listas em Python, focando principalmente em operações como multiplicação e adição de listas.
O programa apresentado é:
a = [1, 4, 8] b = [-1, 6, 2] c = a * 2 + b * 0 print(c)
Explicação:
1. A primeira linha define uma lista a com os elementos [1, 4, 8].
2. A segunda linha define uma lista b com os elementos [-1, 6, 2].
3. A terceira linha realiza duas operações:
- a * 2: Multiplicar uma lista por um inteiro, em Python, resulta na repetição da lista esse número de vezes. Então, a * 2 resulta em [1, 4, 8, 1, 4, 8].
- b * 0: Multiplicar uma lista por zero resulta em uma lista vazia [].
4. A expressão a * 2 + b * 0 é, portanto, a concatenação de [1, 4, 8, 1, 4, 8] com uma lista vazia, que resulta simplesmente em [1, 4, 8, 1, 4, 8].
5. O comando print(c) então exibirá [1, 4, 8, 1, 4, 8] no console.
Justificativa das alternativas:
- A - [2, 8, 16]: Incorreta. Essa alternativa presume que a multiplicação de uma lista por um inteiro multiplica cada elemento individualmente, o que não é o caso em Python.
- B - [1, 4, 8, 1, 4, 8]: Correta. Como explicado, multiplicar uma lista por 2 repete a lista, e adicionar uma lista vazia não altera o resultado.
- C - [2, 8, 16, 0, 0, 0]: Incorreta. Mistura a multiplicação de elementos com a concatenação incorretamente. Em Python, listas não são multiplicadas elemento a elemento dessa maneira.
- D - [1, 4, 8, 1, 4, 8, 0, 0, 0]: Incorreta. Concatena incorretamente a lista repetida com elementos de zero.
- E - TypeError: unsupported operand type(s) for +: 'list' and 'list': Incorreta. Python permite a concatenação de listas com o operador +.
Espero que esta explicação tenha ajudado a compreender melhor a manipulação de listas em Python e por que a alternativa correta é a B.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Aqui está uma explicação passo a passo do que acontece:
- A variável 'a' é uma lista contendo os elementos [1,4,8].
- A variável 'b' é uma lista contendo os elementos [-1,6,2].
- A operação 'a * 2 ' cria uma nova lista que contém os elementos de 'a' repetidos duas vezes. Isso resulta em [1,4,8, 1,4,8].
- A operação 'b * 0 ' cria uma nova lista vazia, pois multiplicar por zero qualquer lista resulta em uma lista vazia [ ] .
- A operação 'a * 2 + b * 0 ' concatena as listas resultantes das operações anteriores. Então, temos [1,4,8] +[1,4,8]. que é igual a [1,4,8, 1,4,8].
- O resultado final é a lista [1,4,8, 1,4,8].
Inacreditável kkkkkkk
Rapaz, magoaram nessa prova hem
No Python, listas podem conter objetos de vários tipos. Você pode fazer uma lista como [1, 2, 3, abacaxi, 'catraca de canhão', 7, 8] por esse motivo, não da para fazer operações de aritmética com uma lista. [1, 2] + [3, 4] é igual a [1, 2, 3, 4] e não [4, 6]. Para fazer aritmética com listas, inclusive usando várias dimensões você usa o np.array. Se a questão fosse sobre np.arrays a reposta seria [2, 8, 16]
Em geral o nível de conhecimento que o cara precisava de ter de Python para fazer essa prova do IPEA foi bem alto. Até quando eu acerto é pelo motivo errado.
Essa questão faz o uso de multiplicação de listas. Em python array é só quando usa a biblioteca Numpy.
Quando uma lista é multiplicada por 0 ela se torna vazia
Quando uma lista é multiplicada por 1 ela permanece igual
Quando é multiplicada por um número inteiro maior que 1 ela repete os elementos de maneira proporcional com o número. Se for um número decimal dá erro
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo