Questão FC441300
Considere o código abaixo, digitado em Python. a, b = 0, 1 while b < 10: print b a, b = b, a+b No final da execução do código, o último valor armazenado nas variáveis a e b serão,
Linguagens de Programação para Ciência de Dados
FCC · 2014
Considere o código abaixo, digitado em Python.
a, b = 0, 1
while b < 10:
print b
a, b = b, a+b
No final da execução do código, o último valor armazenado nas variáveis a e b serão, respectivamente,
- 13 e 21.
- 8 e 13.
- 5 e 10.
- 13 e 20.
- 8 e 10.
Mostrar resposta e comentário
Gabarito
B
Comentário do professor
Inicialmente temos \(a, b = 0, 1\). Em Python é possível fazer múltipla atribuição, então a linha \(a, b = b, a+b\) atualiza ambas as variáveis ao mesmo tempo: a recebe o valor antigo de b e b recebe a soma dos valores antigos de a e b.
Ao executar o laço while com a condição \(b < 10\) os valores de b impressos formam a sequência: 0, 1, 1, 2, 3, 5, 8. Após cada iteração ocorre a atribuição \(a, b = b, a+b\), gerando a progressão de Fibonacci:
\(0, 1, 1, 2, 3, 5, 8, 13\)
Na 6ª iteração a atribuição produz \(a = 8\) e \(b = 13\). Como então \(b = 13\) não satisfaz a condição \(b < 10\), o laço termina sem novas alterações. Portanto, os últimos valores armazenados são a = 8 e b = 13.
Conteúdo do catálogo FC Concursos · Atualizado em