Questão nº 49
Questão de Tecnologia da Informação · FGV TJ-AP 2024 (nº 49)
Analise o código Python a seguir.
```
L=[1,2]
while len(L) < 10:
L.append(L[-1] + L[-2])
print (L[-1])
```
O valor exibido na execução desse código é:
- A-1;
- B1;
- C2;
- D89; (alternativa correta)
- E144.
Resposta comentada
Gabarito Alternativa D
O código Python cria uma sequência de números onde cada novo número é a soma dos dois anteriores, como a sequência de Fibonacci, e adiciona esses números a uma lista até que ela atinja um certo tamanho.
(A) Incorreta: O valor -1 não é gerado nem é o último elemento da lista.
(B) Incorreta: O valor 1 é o primeiro elemento da lista L, não o último após a execução do laço.
(C) Incorreta: O valor 2 é o segundo elemento da lista L, não o último após a execução do laço.
(D) Correta: A lista L começa com [1, 2]. O laço while len(L) < 10 adiciona elementos até a lista ter 10 itens.
[1, 2](len=2)[1, 2, 3](len=3, 1+2=3)[1, 2, 3, 5](len=4, 2+3=5)[1, 2, 3, 5, 8](len=5, 3+5=8)[1, 2, 3, 5, 8, 13](len=6, 5+8=13)[1, 2, 3, 5, 8, 13, 21](len=7, 8+13=21)[1, 2, 3, 5, 8, 13, 21, 34](len=8, 13+21=34)[1, 2, 3, 5, 8, 13, 21, 34, 55](len=9, 21+34=55)[1, 2, 3, 5, 8, 13, 21, 34, 55, 89](len=10, 34+55=89).
Neste ponto,len(L)é 10, então a condiçãolen(L) < 10(que seria10 < 10) se torna falsa e o laço termina. O comandoprint(L[-1])exibe o último elemento da lista, que é 89.
(E) Incorreta: O valor 144 seria o próximo número na sequência (55 + 89), mas o laçowhiletermina quando a lista atinge 10 elementos, ou seja, antes que o 144 seja adicionado. A armadilha aqui é não prestar atenção à condição de parada do laço (len(L) < 10), que faz o laço parar assim que o comprimento da lista se torna 10, e não depois de adicionar o décimo elemento.
Fonte: FGV TJ-AP 2024 Analista Judiciário - TI - Desenvolvimento de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.