《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > 一文了解Python中的數(shù)字類(lèi)型

一文了解Python中的數(shù)字類(lèi)型

2019-06-15
關(guān)鍵詞: Python Hello Long

  數(shù)字類(lèi)型是不可變類(lèi)型,。所謂的不可變類(lèi)型,,指的是類(lèi)型的值一旦有不同了,那么它就是一個(gè)全新的對(duì)象,。數(shù)字1和2分別代表兩個(gè)不同的對(duì)象,,對(duì)變量重新賦值一個(gè)數(shù)字類(lèi)型,會(huì)新建一個(gè)數(shù)字對(duì)象,。

  還是要強(qiáng)調(diào)一下Python的變量和數(shù)據(jù)類(lèi)型的關(guān)系,,變量只是對(duì)某個(gè)對(duì)象的引用或者說(shuō)代號(hào)、名字,、調(diào)用等等,,變量本身沒(méi)有數(shù)據(jù)類(lèi)型的概念 。只有1,,[1,,2],"hello"這一類(lèi)對(duì)象才具有數(shù)據(jù)類(lèi)型的概念,。

  Python 支持三種不同的數(shù)字類(lèi)型,,整數(shù)、浮點(diǎn)數(shù)和復(fù)數(shù),。

5d01de3701d45-thumb.jpg

  整數(shù)

  通常被稱(chēng)為整型,,數(shù)值為正或者負(fù),不帶小數(shù)點(diǎn),。python 3的整型可以當(dāng)做Long類(lèi)型使用,,所以python 3 沒(méi)有python 2的Long類(lèi)型。

  表示數(shù)字的時(shí)候,,有時(shí)我們還會(huì)用八進(jìn)制或十六進(jìn)制來(lái)表示:

  十六進(jìn)制用0x前綴和0-9,,a-f表示,例如:0xff00

  八進(jìn)制用0o前綴和0-7表示,,例如0o45

  python的整數(shù)長(zhǎng)度為16,,32位,并且通常是連續(xù)分配內(nèi)存空間的,。

2.jpg

  從上面的空間地址看,,地址之間正好差16,32,。

  小整數(shù)對(duì)象池

  python初始化的時(shí)候會(huì)自動(dòng)建立一個(gè)小整數(shù)對(duì)象池,方便我們調(diào)用,,避免后期重復(fù)生成,!這是一個(gè)包含262個(gè)指向整數(shù)對(duì)象的指針數(shù)組,范圍是-5到256。也就是說(shuō)比如整數(shù)10,,即使我們?cè)诔绦蚶餂](méi)有創(chuàng)建它,,其實(shí)在Python后臺(tái)已經(jīng)悄悄為我們創(chuàng)建了。

  為什么要這樣呢,?我們都知道,,在程序運(yùn)行時(shí),包括Python后臺(tái)自己的運(yùn)行環(huán)境中,,會(huì)頻繁使用這一范圍內(nèi)的整數(shù),,如果每需要一個(gè),你就創(chuàng)建一個(gè),,那么無(wú)疑會(huì)增加很多開(kāi)銷(xiāo),。創(chuàng)建一個(gè)一直存在,永不銷(xiāo)毀,,隨用隨拿的小整數(shù)對(duì)象池,,無(wú)疑是個(gè)比較實(shí)惠的做法。

3.jpg

  從id(-6)和id(257)的地址,,我們能看出小整數(shù)對(duì)象池的范圍,,正好是-5到256。

  除了小整數(shù)對(duì)象池,,Python還有整數(shù)緩沖區(qū)的概念,,也就是剛被刪除的整數(shù),不會(huì)被真正立刻刪除回收,,而是在后臺(tái)緩沖一段時(shí)間,,等待下一次的可能調(diào)用。

4.jpg

  上面,,我給變量a賦值了整數(shù)100,,看了一下它的內(nèi)存地址。然后我把a(bǔ)刪了,,又創(chuàng)建個(gè)新變量b,,依然賦值為100,再次看下b的內(nèi)存地址,,和以前a存在的是一樣的,。

  浮點(diǎn)數(shù)

  浮點(diǎn)數(shù)也就是小數(shù),如1.23,,3.14,,-9.01,等等,。但是對(duì)于很大或很小的浮點(diǎn)數(shù),,一般用科學(xué)計(jì)數(shù)法表示,,把10用e替代,1.23x10^9就是1.23e9,,或者12.3e8,,0.000012可以寫(xiě)成1.2e-5,等等,。

  復(fù)數(shù)(complex)

  復(fù)數(shù)由實(shí)數(shù)部分和虛數(shù)部分構(gòu)成,,可以用a + bj,或者complex(a,,b)表示,,復(fù)數(shù)的實(shí)部a和虛部b都是浮點(diǎn)。

  數(shù)字類(lèi)型轉(zhuǎn)換

  在某些特定的情況下,,我們需要對(duì)數(shù)字的類(lèi)型進(jìn)行轉(zhuǎn)換,。python為我們提供了內(nèi)置的數(shù)據(jù)類(lèi)型轉(zhuǎn)換函數(shù)。

5.jpg

  轉(zhuǎn)換過(guò)程中如果出現(xiàn)無(wú)法轉(zhuǎn)換的對(duì)象,,則會(huì)拋出異常,,比如int("haha")

  數(shù)學(xué)計(jì)算

  對(duì)于數(shù)學(xué)計(jì)算,除了前面提到過(guò)的簡(jiǎn)單的加減乘除等等,,更多的科學(xué)計(jì)算需要導(dǎo)入math這個(gè)庫(kù),,它包含了絕大多數(shù)我們可能需要的科學(xué)計(jì)算函數(shù),如下表

6.jpg

  例子

7.jpg


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容,、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話(huà)通知我們,,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話(huà):010-82306118,;郵箱:[email protected],。