我不确定这个问题的合适标题是什么,这也可以是一个重复的问题。所以请相应地指导。

我是 python 编程的新手。我有这个简单的代码来生成斐波那契数列。

1: def fibo(n):
2:    a = 0
3:    b = 1
4:    for x in range(n):
5:        print (a, end=' ')
6:        #a, b = b, a+b
7:        a = b
8:        b = a+b
9:    print()
10: num = int(input("enter n value: "))
11: print(fibo(num))

如果我按原样执行上面的代码,我得到的结果如下
enter n value: 10
0 1 2 4 8 16 32 64 128 256

如果取消注释 #6 和注释行 #7 和 #8,我得到的结果是实际的 fibo 系列。
enter n value: 10
0 1 1 2 3 5 8 13 21 34

我想知道有什么区别
a, b = b, a + b


a = b
b = a + b

使用的编程IDE:PyCharm Community 2017.3

最佳答案

a = b
b = a + b

实际上是:
a = b
b = b + b

你想要的是:
a = b
b = old_value_of_a + b

当你做a, b = b, a + b它确实在做:
tmp_a = b
tmp_b = a + b
a = tmp_a
b = tmp_b

这就是你想要的

关于Python(斐波那契数列): trying to understand what is the difference between a, b = b, a + b OR a = b & a = a + b,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48072131/

10-12 18:32