Python中a, b = b, a+b 和 a=b b=a+b的区别??

def fib(max):
n, a, b = 0, 0, 1
while n < max:
print b
a= b
b = a + b
n = n+1

def fib1(max):
n, a, b = 0, 0, 1
while n < max:
print b
a, b= b, a+b
n = n+1
fib(3),fib1(3)这个两个输出的结果不一样。
我可不可以这样理解。。a, b= b, a+b 同步执行了 a = b 和b = a+b。a值还是0
而 a= b b = a + b这是先执行了a = b ,之后执行了b = a+b。a值通过赋值已经是1了

a,b=b,a+b 相当于:

temp=b #先保存b的原值
b=a+b #赋b新值
a=temp #将b的原值赋予a

实际就是C语言中的数据交换过程,也可理解为先计算右边后赋值。
温馨提示:内容为网友见解,仅供参考
第1个回答  2018-01-01
a,b=1,3 #就是把1赋值给a,把3赋值给b. 等价于a=1,b=3,这是python中赋值语法
a,b=b,a+b #就是a=b,b=a+b,同样的赋值方式。等价于a=b,b=a+b
相似回答