Seja o seguinte programa Python: a = [1, 4, 8] b = [-1, 6,...

Próximas questões
Com base no mesmo assunto
Q2383097 Programação
Seja o seguinte programa Python:

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?
Alternativas

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:

  1. A variável 'a' é uma lista contendo os elementos [1,4,8].
  2. A variável 'b' é uma lista contendo os elementos [-1,6,2].
  3. 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].
  4. A operação 'b * 0 ' cria uma nova lista vazia, pois multiplicar por zero qualquer lista resulta em uma lista vazia [ ] .
  5. 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].
  6. 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