一開始學習 Python 的時候習慣性的使用 C 中的 a++ 這種寫法,發現會報 SyntaxError: invalid syntax 錯誤,為什么 Python 沒有自增運算符的這種寫法呢?
我們可以看一下 Python 下:
>>>a = 2>>>b = 2>>>id(a) #id() 函數用于獲取對象的內存地址。140732976575344>>>id(b)140732976575344>>>
再來看看 C 語言中:
#include<stdio.h>int main(){ int a = 1; int b = 1; printf("%d/n",&a); printf("%d/n",&b); return 0;}
輸出:
這里可以看出 Python 在變量的存儲上與 C 語言的不同,在 C 語言中,值的存儲以變量名來區分,一個變量具有單獨的地址空間;而 Python 中則不一樣,只要值是相同的,不管你的變量名是什么,它們的地址都是相同的,也就是說, Python 允許一個值被多個變量名稱綁定。
這里說明一下,在腳本式編程環境中是這樣,但是在交互式編程環境下,Python 為了優化速度,使用了小整數對象池, 避免為整數頻繁申請和銷毀內存空間,編譯器會有一個小整數池的概念,小整數的定義是 [-5, 256] 這些整數對象是提前建立好的,不會被垃圾回收,也就是說,變量在這個范圍內是會按照前面所說的,共用內存地址,超過這個值則使用單獨的內存地址。 如:
>>>a=1000>>>b=1000>>>id(a);id(b)266662366224266617350384>>>
總結
以上所述是小編給大家介紹的為什么Python中沒有"a++"這種寫法,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!
新聞熱點
疑難解答