zoukankan      html  css  js  c++  java
  • python中a, b = a, a + b这条语句是如何执行的?

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

      

  • 相关阅读:
    解决GIT可视化工具Sourcetree拉取失败问题
    记录常用Git命令
    vue开发移动端使用rem的适配方案
    使用HBuilderX实现打包vue项目成app
    使用vue+webpack从零搭建项目
    整理最近面试问道的问题
    模块化之seaJs学习和使用
    理解Object.defineProperty的作用
    vue生命周期
    使用gulp编译sass
  • 原文地址:https://www.cnblogs.com/potato-chip/p/13434732.html
Copyright © 2011-2022 走看看