Я обрабатываю последовательность фибоначчи путем итерации. Я ожидал, что следующие две функции обеспечат одинаковые результаты, но они этого не делают.Python Fibonacci последовательность и последовательность распаковки
Пример 1 (возвращает последовательность Фибоначчи по желанию):
def run():
for x in range(0,20):
fib(x)
def fib(n):
a, b = 0, 1
for i in range(n):
a, b = b, a + b
print a
run()
Пример 1 Результаты:
0
1
1
2
3
5
8
13
21
34
Пример 2 (без последовательности распаковки):
def run():
for x in range(0,20):
fib(x)
def fib(n):
a = 0
b = 1
for i in range(n):
a = b
b = a + b
print a
run()
Пример 2 Результаты :
0
1
2
4
8
16
32
64
128
256
В частности, почему ...
a, b = b, a + b
Different чем ...
a = b
b = a + b
спасибо. Для пояснения, как может выглядеть многострочное решение для 'a, b = b, a + b'? –
Например, вы можете ввести временную переменную для хранения предыдущего результата 'a':' c = a' 'a = b' ' b = c + b' –