码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2019-10-09 15:32:11      阅读:91      评论:0      收藏:0      [点我收藏+]

标签:为什么   span   process   pre   class   rip   输出   finish   结果   

 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

 

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

标签:为什么   span   process   pre   class   rip   输出   finish   结果   

原文地址:https://www.cnblogs.com/linfengs/p/11641776.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!