博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1.python的 a,b=b,a+b 和 a=b b=a+b 的区别

Posted on 2019-10-09 14:49  非我执笔灬  阅读(1922)  评论(0编辑  收藏  举报
 1 n1,a1,b1=0,0,1
 2 while n1<6:
 3     print(b1,end=' ')
 4     a1,b1=b1,a1+b1
 5     n1=n1+1
 6 print()
 7 
 8 n2,a2,b2=0,0,1
 9 while n2<6:
10     print(b2,end=' ')
11     a2=b2
12     b2=a2+b2
13     n2=n2+1
14 ###################################
15 D:\untitled\project2\venv\Scripts\python.exe D:/untitled/project2/day1/342432.py
16 1 1 2 3 5 8 
17 1 2 4 8 16 32 
18 Process finished with exit code 0

可见上面的输出结果是不一样的。那么为什么呢?

a,b=b,a+b 这个公式是赋值运算,先右边的运算,然后再给左边的赋值。

 1 a = 0
 2 b = 1
 3 a , b = b , a + b 
 4 # 这种赋值,先计算等值 右边 就是 b=1 a+b=0+1=1
 5 # 再赋值给a和b,那么 a=1, b=1
 6 # 然后就是依次这样
 7 #################################
 8 a = b
 9 # 此时a=1
10 b = a + b
11 # b=1+1=2