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

      

  • 相关阅读:
    .NET 4.6.1 给cookie添加属性
    Blog目录
    1019 数字黑洞
    1018 锤子剪刀布
    1017 A除以B
    1016 部分A+B
    1015 德才论
    1014 福尔摩斯的约会
    1013 数素数
    1012 数字分类
  • 原文地址:https://www.cnblogs.com/potato-chip/p/13434732.html
Copyright © 2011-2022 走看看