FC ConcursosFC Concursos

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. [1, 4, 9, 16, 25, 36, 49, 64]
  2. [1, 4, 9, 16, 25, 36, 49, 64, 81]
  3. [20, 1, 4, 9, 16, 25, 36, 49, 64]
  4. [20, 1, 4, 9, 16, 25, 36, 49, 64, 81]
  5. [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

Continue aprendendo