Python中的a,b=b,a+b

赋值运算

a, b = 0, 1
for _ in range(20):
    a, b = b, a + b
    print(a)

在上述代码中,出现了‘a, b = b, a + b’这样的结构,这个结构代表的等号右边的值赋予等号左边。在这里就表示,a=b,b=a+b,即a=1,b=0+1。
那上边的代码按这个理解调整一下

a, b = 0, 1
for _ in range(20):
    a=b
    b=a+b   
    print(a)

然而,这两段代码的输出结果并不相同。因为这涉及到一个运算顺序的问题。先执行a=b,再执行b=a+b,相当于b=b+b,输出结果不对就很正常了。

上一篇
下一篇