尝试创建最多为“n”个数字的斐波那契数列,我发现以下代码仅将最后一个值加倍
def fibon(n):
a=0
b=1
for i in range(n):
a=b
b=a+b
print(b)
但是如果在同一行,就可以进行正确的操作
def fibon(n):
a=0
b=1
for i in range(n):
a,b=b,a+b
print(b)
我只是想知道为什么第二种方法有效,以及两者之间的区别是什么。谢谢。
答案 0 :(得分:1)
它们不同,因为在第二个版本中,您以原子方式进行赋值,在 a
计算中使用 a+b
的“旧”值。在第一个版本中,您首先设置 a = b
,因此您有效地设置了 b = 2*b
。