为什么 a,b=b,b+a 与 a=b b=b+a 不同?

时间:2021-07-31 03:04:46

标签: python function fibonacci

尝试创建最多为“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)

我只是想知道为什么第二种方法有效,以及两者之间的区别是什么。谢谢。

1 个答案:

答案 0 :(得分:1)

它们不同,因为在第二个版本中,您以原子方式进行赋值,在 a 计算中使用 a+b 的“旧”值。在第一个版本中,您首先设置 a = b,因此您有效地设置了 b = 2*b

相关问题