Analise o código Python a seguir. L=[3,5,1,7] while len(L) < 8: L.append(L[-2] - L[-1]) print (L) O último número exibido pelo comando print é:
- A)-51;
Errada, porque -51 não aparece em nenhuma das iterações do laço.
- B)-6;
Errada, porque -6 é apenas o primeiro valor acrescentado à lista, não o último.
- C)7;
Errada, porque 7 é um valor inicial da lista, e não o resultado final exibido.
- D)19;
Errada, porque 19 não corresponde a nenhuma etapa do cálculo feito pelo programa.
- E)32.
Certa, porque após as quatro inserções a lista termina com 32 como último elemento.
Gabarito: E
A questão cobra leitura de lista, índice negativo e laço while em Python. O detalhe importante é que L[-1] acessa o último elemento e L[-2] acessa o penúltimo. Então, em cada volta do laço, o programa pega esses dois valores e insere na lista a diferença entre o penúltimo e o último. Começando com L = [3, 5, 1, 7], a lista tem tamanho 4, então o while roda até chegar a 8 elementos. Na primeira repetição, entra 1 - 7 = -6. Na segunda, entra 7 - (-6) = 13. Na terceira, entra -6 - 13 = -19. Na quarta, entra 13 - (-19) = 32. Quando a lista alcança 8 elementos, o laço para. Portanto, o print mostra [3, 5, 1, 7, -6, 13, -19, 32], e o último número exibido é 32. É o tipo de questão em que um passo em falso no índice faz a conta inteira desandar, como se Python estivesse fazendo pegadinha com você. Assim, o gabarito correto é a alternativa E.