Questão FC331183
Considere o código Python 2.7 a seguir. def ABC(L, n): while True: if len(L) >= n: return L else: L.append(len(L) ** 2) print ABC([20],10) O resultado da execução desse código é:
Linguagens de Programação
FGV · 2021
Considere o código Python 2.7 a seguir.
def ABC(L, n):
while True:
if len(L) >= n:
return L
else:
L.append(len(L) ** 2)
print ABC([20],10)
O resultado da execução desse código é:
- [1, 4, 9, 16, 25, 36, 49, 64]
- [1, 4, 9, 16, 25, 36, 49, 64, 81]
- [20, 1, 4, 9, 16, 25, 36, 49, 64]
- [20, 1, 4, 9, 16, 25, 36, 49, 64, 81]
- [20, 4, 9, 16, 25, 36, 49, 64, 81]
Mostrar resposta e comentário
Gabarito
D
Comentário do professor
A chamada ABC([20], 10) inicia com L = [20] e n = 10. A função entra em um laço infinito while True que só termina quando a condição len(L) >= n for satisfeita.
Em cada iteração, se a condição não vale, a instrução append acrescenta à lista o quadrado do tamanho atual: adiciona \( \text{len(L)}^2 \). Como a lista começa com tamanho 1, os valores adicionados serão \(1^2, 2^2, 3^2, \dots\).
Já havia um elemento inicial (20), portanto o loop precisa acrescentar mais 9 valores para alcançar comprimento 10. Serão inseridos \(1^2\) a \(9^2\), isto é: 1, 4, 9, 16, 25, 36, 49, 64, 81.
Ao atingir len(L) = 10 a função executa return L, e o print exibe: [20, 1, 4, 9, 16, 25, 36, 49, 64, 81].
Conteúdo do catálogo FC Concursos · Atualizado em