下面是显示出2000以内的斐波那契序列:
方法1:
>>> a,b=0,1
>>> while b<2000:
... print b,
... a,b=b,a+b
...
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597
方法2:
>>> a,b=0,1
>>> while b<2000:
... print b,
... b,a=a+b,b
...
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597
我个人觉的第一种和第二种应该不一样,a,b=b,a+b和b,a=a+b,b 效果应该不一样,但数据是一样的,赋值时没有先后之分?如何 a,b=b,a+b 先执行a=b,那么b=a+b,岂不是相当于2b了么?
我猜这是Python与其他语言不同的地方。获取在赋值时,保留一份原有的数据,这样就与赋值顺序没关系了。