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

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM