python中a, b = a, a + b这条语句是如何执行的?
2024-09-04 22:43:39
a,b=b,a+b,这条语句在"理解"上还是与C语言有些差别的。
在Python中,可以做下面的方式理解:首先,把等号右边的算式分别算完再说,然后按照一一对应的关系把值赋给等号左边的变量,也就是a=b的值,b=a+b的值。
等号右边第一个算式的值赋给等号左边第一个变量,以此类推。
举一个循环的例子说明一下更容易理解了:初始a=1,b=2。计算a,b=b, a+b。循环计算4次。
第(1)次:分别计算等式右边,b=2,a+b=1+2=3,后左边赋值a=2,b=3。
第(2)次:分别计算等式右边,b=3,a+b=2+3=5,后左边赋值a=3,b=5。
第(3)次:分别计算等式右边,b=5,a+b=3+5=8,后左边赋值a=5,b=8。
第(4)次:分别计算等式右边,b=8,a+b=5+8=13,后左边赋值a=8,b=13。
在python中就不用开发者去想着设置中间变量来存储计算结果再赋值的过程了,简化了编程的复杂性。 变量互换时,只需:a,b=b,a。这么一句话就可以了。
在做“斐波那契数列”计算时,a,b=b,a+b。实现就显得特别简单了。 同时,三个变量也是也可以的,如:a,b,c=b,a+b,a+b+c。
样例:
右边的 a, a+b 本质上会返回一个tuple ,元组里面的值先计算出来,然后这个左边的a, b 会分别赋值为这个tuple里的第一个和第二个。
>>> a=1
>>> b=2
>>> c=a,a+b
>>> print c---这里 c=(1,3)
(1, 3)
>>> print type(c)
<type 'tuple'>
>>> print id(a)
8895592
>>> print id(b)
8895568
>>> print id(c)
139863933153648
>>>
最新文章
- [原]Cachedb 网络模块文档
- adb connect 出现timeout的处理方式
- C++ find 函数用法
- [转] C语言常见笔试题大全1
- 关于Plupload结合上传插件jquery.plupload.queue的使用
- PHP数字格式化,每三位逗号分隔数字,可以保留小数
- Differential Geometry之第二章曲线的局部理论
- SQL2008-c:\PROGRA~1\COMMON~1\System\OLEDB~1\oledb32.dll出错找不到指定的模块
- poj 3013 Big Christmas Tree Djistra
- Java的JDBC事务详解(转)
- Windows 7 下安装mysql-5.7.18-winx64.zip
- jsp登陆页面验证码在火狐浏览器不能刷新问题处理方案
- SQL Server 索引维护(1)——系统常见的索引问题
- vue 自定义组件销毁
- JS 之 阻止事件冒泡,阻止默认事件,event.stopPropagation()和event.preventDefault(),return false的区别
- display position 和float的作用和关系
- Django读取Mysql数据并显示在前端
- RandomForest中的feature_importance
- Python图形界面开发—wxPython库的布局管理及页面切换
- 3dmax 物体的真正局部空间原点