亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

圖解Python變量與賦值

發布時間:2020-08-29 16:57:23 來源:腳本之家 閱讀:137 作者:liuzhijun 欄目:開發技術

Python是一門獨特的語言,與C語言有很大區別,初學Python很多萌新表示對變量與賦值不理解,學過C的都知道,給變量賦值時,需要先指定數據類型,同時會開辟一塊內存區域,用于存儲值,例如:

int a = 1;

圖解Python變量與賦值

a 就是內存空間中的一小塊區域,就像是一個大房間里面的一個小盒子,賦值就是把整數1裝載到盒子里面。

現在給變量a重新賦值

a = 2;

圖解Python變量與賦值

盒子依然是那個盒子,也就是說內存地址沒有變,只是該段內存中的值變了,變成了2。

再來看:

int b = a;

圖解Python變量與賦值

當把變量a賦值給另外一個變量b時,相當于把值拷貝了一份傳遞給變量b,b是新開辟的一段內存區域

而在Python中,“變量”的嚴格叫法是“名字(name)”,也可以理解為標簽,就像我們人的姓名一樣,名字就是掛在人身上的一個標簽。

>>> 10-a
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined

比如上面這段錯誤報的是name 'a' 沒有定義,而沒有說成 variable。

在Python中,給變量賦值就是相當于給對象貼標簽,就像我們給人取名字一樣,變量本身是沒有任何意義的,它沒有類型信息,真正的信息都在對象身上。

例如:

a = 1

圖解Python變量與賦值

Python內部首先會分配一段內存空間用于創建整數對象1,然后給這個1貼上名為a的標簽。

然后執行

a=2

Python接著會在另一塊內存區域創建整數對象2,然后把標簽a從1身上撕下來貼在2身上,此時,我們沒法再通過a來得到1這個值了。

圖解Python變量與賦值

現在把名字a賦值給另外一個名字b

b = a

圖解Python變量與賦值

相當于在剛才的2身上又貼了一個新的標簽b,注意,這里和C語言是完全不一樣的,定義b的時候不需要分配內存空間,這樣我們既可以通過a來訪問2也可以通過b來訪問2,訪問的都是同一個對象,就好比我們給寶寶取名時既有小名也有大名,其實叫的都是同一個人。

雖然我們通常在Python中還是用"變量"的叫法(因為在編程語言中這是一種通用叫法),但是我們需要理解Python中的變量不同于其他語言,變量只是一個名字。

理解了Python中的變量與賦值后,再來看函數的參數傳遞,如下所示:

>>> def fun_a(a):
...   a = a+4
...
>>> g = 0
>>> fun_a(g)
>>> g
0

全局變量g傳遞給函數fun_a時,相當于函數中的參數a也將作為標簽貼在0上,隨后a被重新賦值了(a=a+4),相當于從0撕下標簽a貼到4身上,然后g依然還是0上面的標簽。

圖解Python變量與賦值

再來看這個函數,傳遞的是一個列表對象

>>> def fun_b(names):
...   names[0] = ['x', 'y']
...
>>> n_list = ['a','b','c']
>>> fun_b(n_list)
>>>
>>> n_list
[['x','y'], 'b', 'c']

與前面的步驟還是一樣的,names 和 n_list 都是['a','b','c']上的一個標簽,只是列表中的第0個元素被重新賦值了,但是names和 n_list 依然都貼在這個列表對象身上,雖然 n_list的值更新了,但對象依然是原來那個對象。就好比張三和小張都是同一個人,現在給小張換件衣服時,其實就是給張三換件衣服,人還是那個人,只是它身上的東西發生了變化。

圖解Python變量與賦值

以上內容就介紹到這,大家可以繼續看下面的相關文章。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

曲周县| 东港市| 兴海县| 蒙城县| 金川县| 潮州市| 清流县| 松原市| 石景山区| 东乡| 西平县| 瓦房店市| 那坡县| 寻乌县| 乌苏市| 磐安县| 奎屯市| 翼城县| 武城县| 德昌县| 额敏县| 鄂伦春自治旗| 罗山县| 鸡泽县| 康平县| 稷山县| 双鸭山市| 铜山县| 阿拉善盟| 遵化市| 南皮县| 体育| 涟源市| 九江县| 阳曲县| 仁布县| 巩义市| 巧家县| 天长市| 南华县| 嵊泗县|