Python中的自增運算

pythontab發表於2018-01-10

接觸過其他語言的同學可能都知道算數運算子裡面有個自增運算子++, 在寫迴圈的時候非常常用, 但是Python裡面可能會不同,需要引起大家注意。

請看以下Python程式碼

>>> num = 1
>>> ++num
1
>>> num
1

Python居然不認識++運算子。

同理Python也不認識自減運算子--

>>> num = 1
>>> --num
1
>>> num
1

各位同學要注意啦!

如果大家需要自增運算, 只能老老實實的用變數賦值num = num + 1 這種方式了。


python 不使用 ++ 的哲學邏輯:編譯解析上的簡潔與語言本身的簡潔

>>> b = 1
>>> a = 1
>>> id(a)
372510
>>> id(b)
372510
>>> a is b
True

可以看出, Python 中,變數是以內容為基準而不是像 c 中以變數名為基準,所以只要你的數字內容是5,不管你起什麼名字,這個變數的 ID 是相同的,同時也就說明了 python 中一個變數可以以多個名稱訪問

這樣的設計邏輯決定了 python 中數字型別的值是不可變的,因為如果如上例,a 和 b 都是 5,當你改變了 a 時,b 也會跟著變,這當然不是我們希望的。


相關文章