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
>>>

  

最新文章

  1. [原]Cachedb 网络模块文档
  2. adb connect 出现timeout的处理方式
  3. C++ find 函数用法
  4. [转] C语言常见笔试题大全1
  5. 关于Plupload结合上传插件jquery.plupload.queue的使用
  6. PHP数字格式化,每三位逗号分隔数字,可以保留小数
  7. Differential Geometry之第二章曲线的局部理论
  8. SQL2008-c:\PROGRA~1\COMMON~1\System\OLEDB~1\oledb32.dll出错找不到指定的模块
  9. poj 3013 Big Christmas Tree Djistra
  10. Java的JDBC事务详解(转)
  11. Windows 7 下安装mysql-5.7.18-winx64.zip
  12. jsp登陆页面验证码在火狐浏览器不能刷新问题处理方案
  13. SQL Server 索引维护(1)——系统常见的索引问题
  14. vue 自定义组件销毁
  15. JS 之 阻止事件冒泡,阻止默认事件,event.stopPropagation()和event.preventDefault(),return false的区别
  16. display position 和float的作用和关系
  17. Django读取Mysql数据并显示在前端
  18. RandomForest中的feature_importance
  19. Python图形界面开发—wxPython库的布局管理及页面切换
  20. 3dmax 物体的真正局部空间原点

热门文章

  1. Lun4R-CyBRICSCTF wp
  2. OpenLDAP on Centos7
  3. java实现链表反转
  4. Webpack 原理浅析
  5. PHP strval() 函数
  6. PDOStatement::bindValue
  7. luogu P1128 [HNOI2001]求正整数 dp 高精度
  8. 面试被问:如果系统 CPU 突然飙升且 GC 频繁,你该如何排查?
  9. PHP7 生产环境队列 Beanstalkd 正确使用姿势
  10. 牛!Python 也能实现图像姿态识别溺水行为了!