FC ConcursosFC Concursos

Questão FC331160

Analise o código Python a seguir. x = lambda a, b: a + [a[-1] + a[-2] + b] y=[-1,0] for i in range(7): y = x(y, i) print (y) O resultado produzido pela execução desse código na IDL

Linguagens de Programação

FGV · 2022

Analise o código Python a seguir.


x = lambda a, b: a + [a[-1] + a[-2] + b]
y=[-1,0]
for i in range(7):
     y = x(y, i)
print (y)


O resultado produzido pela execução desse código na IDLE Shell 3.9.9 é:

  1. [-1, 0, -1, -1, -2, -3, -5, -8, -13]
  2. [0, -1, 4, 9, 18, 33, 51, 84]
  3. [-1, 0, -1, -2, -3, -5, -8, -13, -21]
  4. [-1, 0, -1, 0, 1, 4, 9, 18, 33]
  5. [-1, 0, -1, 4, 9, 18, 33, 51]
Mostrar resposta e comentário

Gabarito

D

Comentário do professor

O código usa uma função lambda que concatena duas listas: \(x(a,b)=a+[a[-1]+a[-2]+b]\). A variável y inicia em [-1,0] e o laço for i in range(7) percorre \(i=0\) a \(6\).

Em cada iteração é calculado um novo elemento igual à soma dos dois últimos valores atuais de y mais o valor de i, e esse elemento é anexado à lista. Ou seja, novo = \(a[-1]+a[-2]+i\).

Aplicando passo a passo: i=0 → adiciona \(-1\) → [-1,0,-1]; i=1 → adiciona 0 → [-1,0,-1,0]; i=2 → adiciona 1 → [-1,0,-1,0,1]; i=3 → adiciona 4 → [-1,0,-1,0,1,4]; i=4 → adiciona 9 → [-1,0,-1,0,1,4,9]; i=5 → adiciona 18 → [-1,0,-1,0,1,4,9,18]; i=6 → adiciona 33 → [-1,0,-1,0,1,4,9,18,33].

Portanto, a saída impressa é: [-1, 0, -1, 0, 1, 4, 9, 18, 33].

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo