最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Python 變量

2021-07-27 17:51 作者:皮卡丘上大學(xué)啦  | 我要投稿

(1)變量的數(shù)據(jù)類(lèi)型?

? 一般而言,變量需要先定義,后使用,變量的數(shù) 據(jù)類(lèi)型決定了變量占用多少個(gè)字節(jié)的內(nèi)存單元。?

? 例:C 語(yǔ)言中的變量,需要在程序編譯時(shí)確定數(shù) 據(jù)類(lèi)型并分配相應(yīng)的內(nèi)存單元。這種在使用變量 之前定義其數(shù)據(jù)類(lèi)型的語(yǔ)言稱(chēng)為靜態(tài)類(lèi)型語(yǔ)言。?

? 但Python 語(yǔ)言不同,它是一種動(dòng)態(tài)類(lèi)型語(yǔ)言。

? Python 是一種動(dòng)態(tài)類(lèi)型語(yǔ)言。

? 這種動(dòng)態(tài)類(lèi)型語(yǔ)言確定變量的數(shù)據(jù)類(lèi)型是在給變 量賦值的時(shí)候,對(duì)變量的每一次賦值,都可能改 變變量的類(lèi)型。?

? 在Python 中使用變量時(shí)不用像C 語(yǔ)言那樣先定義 數(shù)據(jù)類(lèi)型,而可直接使用。

? 例:?

? >>> x=12 #給變量x 賦值?

? >>> y=12.34 #給變量y 賦值?

? >>> z='Hello World' #給變量z 賦值?

? >>> print(x,y,z)?

? 12 12.34 Hello World

? 可以使用Python 內(nèi)置函數(shù)type()來(lái)查詢(xún)變量的類(lèi)型。?

? 例:?

? >>> type(x) #查看x 的數(shù)據(jù)類(lèi)型,x 是整型(int)變量

? (class 'int')?

? >>> type(y) #查看y 的數(shù)據(jù)類(lèi)型,y 是浮點(diǎn)型(float) 變量

? (class 'float')?

? >>> type(z) #查看z 的數(shù)據(jù)類(lèi)型,z 是字符串型(string) 變量?

? (class 'str')

(2)變量與地址的關(guān)系?

? 在C 語(yǔ)言中,編譯系統(tǒng)要為變量分配內(nèi)存空間, 當(dāng)改變變量的值時(shí),改變的是該內(nèi)存空間的內(nèi)容, 在程序運(yùn)行過(guò)程中,變量的地址是不再發(fā)生改變的,即變量所對(duì)應(yīng)的內(nèi)存空間是固定的。?

? Python 語(yǔ)言則不同,它采用的是基于值的內(nèi)存管理方式,不同的值分配不同的內(nèi)存空間。? 當(dāng)給變量賦值時(shí),Python解釋器為該值分配一個(gè) 內(nèi)存空間,而變量則指向這個(gè)空間,當(dāng)變量的值 被改變時(shí),改變的并不是該內(nèi)存空間的內(nèi)容,而 是改變了變量的指向關(guān)系,使變量指向另一內(nèi)存 空間。?

? 這可理解為,Python 變量并不是某一個(gè)固定內(nèi)存 單元的標(biāo)識(shí),而是對(duì)內(nèi)存中存儲(chǔ)的某個(gè)數(shù)據(jù)的引 用(reference),這個(gè)引用是可以動(dòng)態(tài)改變的。

? 例:執(zhí)行下面的賦值語(yǔ)句后,Python 在內(nèi)存中創(chuàng)建數(shù)據(jù)12,并 使變量x 指向這個(gè)整型數(shù)據(jù),因此可以說(shuō)變量x 現(xiàn)在是整型數(shù)據(jù)。?

? >>> x=12 ? >>> print(x)?

? 12?

? 如果進(jìn)一步執(zhí)行下面的賦值語(yǔ)句,則Python 又在內(nèi)存中創(chuàng)建數(shù) 據(jù)3.14,并使變量x 改為指向這個(gè)浮點(diǎn)型(實(shí)型)數(shù)據(jù),因此 變量x 的數(shù)據(jù)類(lèi)型現(xiàn)在變成了浮點(diǎn)型。

? >>> x=3.14?

? >>> print(x)?

? 3.14

? Python 具有自動(dòng)內(nèi)存管理功能,對(duì)于沒(méi)有任何變 量指向的值(稱(chēng)為垃圾數(shù)據(jù)),Python 系統(tǒng)會(huì)自 動(dòng)將其刪除。

? 例:當(dāng)x 從指向12 轉(zhuǎn)而指向3.14 后,數(shù)據(jù)12 就變 成了沒(méi)有被變量引用的垃圾數(shù)據(jù),Python會(huì)回收 垃圾數(shù)據(jù)的內(nèi)存單元,以便提供給別的數(shù)據(jù)使用, 這稱(chēng)為垃圾回收(garbage collection)。

? 也可以使用del 語(yǔ)句刪除一些對(duì)象引用。?

? 例:

? del x?

? 刪除x 變量后,如果再使用它,將出現(xiàn)變量未定義錯(cuò)(name 'x' is not defined)。

? Python 的id()函數(shù)可以返回對(duì)象的內(nèi)存地址。?

? >>> a=2.0

? >>> b=2.0?

? >>> id(a)?

? 35433824?

? >>> id(b)

? 35853488?

? >>> a=2?

? >>> b=2?

? >>> id(a)?

? 1600796448?

? >>> id(b)?

? 1600796448

? Python 解釋器會(huì)為每個(gè)出現(xiàn)的對(duì)象分配內(nèi)存單元, 即使它們的值相等,也會(huì)這樣。

? 例如,執(zhí)行a=2.0,b=2.0 這兩個(gè)語(yǔ)句時(shí),會(huì)先后 為2.0 這個(gè)float 類(lèi)型對(duì)象分配內(nèi)存單元,然后將a?與b 分別指向這兩個(gè)對(duì)象。所以a 與b 指向的不是同一對(duì)象。

? 為了提高內(nèi)存利用效率,對(duì)于一些簡(jiǎn)單的對(duì)象, 如一些數(shù)值較?。?256~256)的整型(int)對(duì)象, Python 采取重用對(duì)象內(nèi)存的辦法。

? 例:執(zhí)行a=2,b=2 時(shí),由于2 作為簡(jiǎn)單的int 類(lèi)型且數(shù)值小,Python 不會(huì)兩次為其分配內(nèi)存單元,而是只分配一次,然后將a 與b 同時(shí)指向已分配的對(duì)象。

? 如果賦值是較大的數(shù)值,情況就跟前面的一樣了。?

? 例:?

? >>> a=2222?

? >>> b=2222?

? >>> id(a)

? 35853872?

? >>> id(b)?

? 35852800

Python 變量的評(píng)論 (共 條)

使用qq登录你需要登录后才可以评论。
大新县| 汕尾市| 镇巴县| 甘孜县| 申扎县| 郧西县| 梅河口市| 微山县| 根河市| 瓦房店市| 开原市| 江都市| 马尔康县| 彩票| 英山县| 晋江市| 镇雄县| 台北县| 丹巴县| 平乐县| 廉江市| 唐山市| 商城县| 泸定县| 庆城县| 石屏县| 布拖县| 高安市| 肇庆市| 岑溪市| 个旧市| 柳河县| 兴安盟| 正蓝旗| 周口市| 维西| 新泰市| 舞钢市| 兰西县| 白城市| 库尔勒市|