目录
前言
今天在刷LeetCode时,就因为这个坑a, b = b, a+b花了好多时间,所以有必要弄懂a, b = b, a+b和a = b,b = a + b的区别。相信大家对a = b,b = a + b已经再了解不过。接下来主要重点说一下a, b = b, a+b,若理解不好一不小心就掉坑里了!!!
a, b = b, a+b
多个值同时赋值给多个变量,计算等号的右边,再赋值,这样就保证了a, b都是初始值
a = 0, b = 1
a, b = b, a+b
print a, b #结果为:1 1
注意:a,b的赋值是同时进行,没有先后顺序
a = b,b = a + b
a = 0, b = 1
a = b
b = a + b
print a, b #结果为:1 2
这种是顺序计算赋值,a+b中的a的值已经改变了
要想取得同样效果,必须增加一个变量
a = 0, b = 1, c = 0
c = a
a = b
b = c + b
print a, b #结果为:1 1