关于Python的 a, b = b, a+b
Python中有一种写法:多个值同时赋给多个变量,如:a, b = b, a+b
1. A写法
a = 0, b = 1 a, b = b, a+b print a, b #结果为:1 1
这种写法,Python先计算等号的右边,再赋值,这样就保证了a, b都是初始值
2. B写法
a = 0, b = 1 a = b b = a + b print a, b #结果为:1 2
很明显,这种是顺序计算赋值,a+b中的a的值已经改变了
要想B写法取得A写法的效果,必须增加一个变量
a = 0, b = 1, c = 0 c = a a = b b = c + b print a, b #结果为:1 1