Considere o código fonte Python abaixo. def calcular(n):   ...

Próximas questões
Com base no mesmo assunto
Q535634 Programação
Considere o código fonte Python abaixo.

 def calcular(n):
        resultado = [ ]
        a, b = 0, 1
        while a < n:
                      ...I...  
        return resultado
res = calcular(100)
print res


Para que seja exibido [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89] a lacuna I precisa ser preenchida corretamente com: 


Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Resposta Correta: B

A questão pede para completar o código de uma função em Python que deve gerar uma sequência de Fibonacci até um número n. A sequência de Fibonacci é uma série de números onde cada número é a soma dos dois precedentes, começando tipicamente com 0 e 1.

O código fornece a estrutura básica com um laço while que continua a executar enquanto a variável a for menor que n. Para que a função retorne a sequência de Fibonacci desejada, precisamos adicionar cada número atual da sequência (armazenado em a) a uma lista (chamada resultado) e depois atualizar as variáveis a e b para os próximos números da sequência.

A alternativa correta é a B, que utiliza o método append para adicionar o elemento atual a ao final da lista resultado. Em seguida, atualiza os valores de a e b de tal maneira que a recebe o valor de b e b recebe a soma de a e b (ou seja, o próximo número da sequência), o que é feito com a expressão a, b = b, a+b. Este é o processo que gera a sequência de Fibonacci.

Veja a alternativa correta formatada com as tags HTML:

resultado.append(a)
a, b = b, a+b

As outras alternativas estão incorretas por diversos motivos:

  • A alternativa A usa um método que não existe para listas em Python (insert existe, mas requer dois argumentos).
  • A alternativa C usa add, que é um método para conjuntos (set) e não listas, além de atualizar incorretamente as variáveis a e b.
  • A alternativa D também usa append, mas atualiza as variáveis de forma invertida, o que não produziria a sequência de Fibonacci.
  • A alternativa E repete o erro de usar o método add, que não é aplicável para listas.

Entender o funcionamento do método append e a lógica de atualização das variáveis na sequência de Fibonacci é essencial para resolver essa questão corretamente.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

o método append em Python serve para "apensar" o objeto passado como parâmetro à lista. Desse modo, o único trecho de código que corresponde ao output dado é a letra B.

O append()método acrescenta um elemento ao final da lista.

Sintaxe:

list.append(elmnt)

 

Iteração 1:

A = 0

B = 1

0 < n (condição do loop):

Imprime: 0

 

Iteração 2:

A = 0

B = 1

1 < 10 (condição do loop):

Imprime: 0 1

A = 1 / B = 0 + 1 (1)

 

Iteração 3:

A = 1

B = 1

1 < 10 (condição do loop):

Imprime: 0 1 1

A = 1 / B = 1 + 1 (2)

 

Iteração 4:

A = 1

B = 2

2 < 10 (condição do loop):

Imprime: 1 1 2

A = 2 / B = 1 + 2 (3)

 

Iteração 5:

A = 2

B = 3

3 < 10 (condição do loop):

Imprime: 1 1 2 3

A = 3 / B = 5

Já que o QC não tem a capacidade de colocar um código formatado decentemente, segue o mesmo para os colegas:

def calcular(n): 

resultado = [] 

   a, b = 0, 1

   while a < n: 

     ...I...

return resultado 

   

res = calcular(100) 

print res

LETRA B

Decorem o fibonacci e o fatoria, a FCC adora, em qualquer linguagem:

Q701574

Append: Função utilizada para adicionar um item ao final da lista. Pensando como uma pilha, de modo inverso a uma lista, ele adiciona um item no topo.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo