官术网_书友最值得收藏!

  • Python快速編程入門
  • 黑馬程序員編著
  • 1518字
  • 2019-07-30 13:07:09

2.4 簡(jiǎn)單數(shù)值類型

2.4.1 整型

整數(shù)類型(int)簡(jiǎn)稱整型,它用于表示整數(shù),例如,100、2016 等。整型字面值的表示方式有四種,分別是十進(jìn)制、二進(jìn)制(以“0B”或“0b”開(kāi)頭)、八進(jìn)制(以數(shù)字“0”開(kāi)頭)和十六進(jìn)制(以“0x”或“0X”開(kāi)頭)。

Python的整型可以表示的范圍是有限的,它和系統(tǒng)的最大整型一致,例如,32位計(jì)算機(jī)上的整型是32位,可以表示的數(shù)的范圍是?231~231?1。在64位計(jì)算機(jī)上的整型是64位的,可以表示的數(shù)的范圍是?263~263?1。

接下來(lái),看一些整型的示例代碼,具體如下:

1 >>> a=0b10100

2 >>> type(a)

3 <type 'int'>

4 >>> a

5 20

上述代碼中,第1行代碼的變量a的值是一個(gè)二進(jìn)制的整數(shù),它屬于int類型,這點(diǎn)在第2~3行代碼中得到了驗(yàn)證。第4~5行代碼直接輸出a的值,結(jié)果是十進(jìn)制的20。十進(jìn)制的數(shù),如果想轉(zhuǎn)換為二進(jìn)制、八進(jìn)制或者十六進(jìn)制,可以使用指定的函數(shù)來(lái)完成。示例代碼如下:

1 >>> bin(20)  # 將十進(jìn)制的20轉(zhuǎn)為二進(jìn)制

2 '0b10100'

3 >>> oct(20)  # 將十進(jìn)制的20轉(zhuǎn)為八進(jìn)制

4 'o024'

5 >>> hex(20)  # 將十進(jìn)制的20轉(zhuǎn)為十六進(jìn)制

6 '0x14'

多學(xué)一招:長(zhǎng)整型

長(zhǎng)整型(long)是整型的超集,它可以表示無(wú)限大的整數(shù)(實(shí)際上只受限于計(jì)算機(jī)的虛擬內(nèi)存大?。?。長(zhǎng)整型字面值的后面帶有字母“L”或“l(fā)”(推薦使用大寫(xiě)的“L”)。長(zhǎng)整型與整型的操作完全相同。示例代碼如下:

>>> a=10000000000*10000000000

>>> a

a=10000000000*10000000000

>>> type(a)

<type 'long'>

從長(zhǎng)遠(yuǎn)來(lái)看,整型與長(zhǎng)整型正在逐步統(tǒng)一為一種整型類型。從Python 2.3開(kāi)始,再也不會(huì)報(bào)整型溢出錯(cuò)誤,結(jié)果都會(huì)被自動(dòng)轉(zhuǎn)換為長(zhǎng)整型,現(xiàn)在兩種整型類型可以說(shuō)是無(wú)縫結(jié)合,長(zhǎng)整型后綴“L”變得可有可無(wú)。

2.4.2 浮點(diǎn)型

浮點(diǎn)型(float)用于表示實(shí)數(shù)。例如,3.14、9.19等都屬于浮點(diǎn)型。浮點(diǎn)型字面值可以用十進(jìn)制或科學(xué)計(jì)數(shù)法表示。Python中的科學(xué)計(jì)數(shù)法表示如下:

<實(shí)數(shù)>E或者e<整數(shù)>

其中,E或e表示基是10,后面的整數(shù)表示指數(shù),指數(shù)的正負(fù)使用+或者?表示,其中,+可以省略。例如,1.34E3表示的是1.34×103,1.5E?3表示的是1.5×10-3

需要注意的是,Python的浮點(diǎn)型遵循的是IEEE 754雙精度標(biāo)準(zhǔn),每個(gè)浮點(diǎn)數(shù)占8個(gè)字節(jié),能表示的數(shù)的范圍是?1.8308~1.8308。示例代碼如下:

>>> 1.2e5   # 浮點(diǎn)數(shù)為1.2×105

120000.0

>>> -1.8e308  # 浮點(diǎn)數(shù)為-1.8×10308,超出了可以表示的范圍

-inf

>>> 1.8e308  # 浮點(diǎn)數(shù)為1.8×10308,超出了可以表示的范圍

inf

2.4.3 布爾類型

布爾類型可以看做是一種特殊的整型,布爾型數(shù)據(jù)只有兩個(gè)取值:True和False,分別對(duì)應(yīng)整型的1和0。每一個(gè)Python對(duì)象都天生具有布爾值(True或False),進(jìn)而可用于布爾測(cè)試(如用在if、while中)。

以下對(duì)象的布爾值都是False:

(1)None

(2)False(布爾型)

(3)0(整型0)

(4)0L(長(zhǎng)整型0)

(5)0.0(浮點(diǎn)型0)

(6)0.0+0.0j(復(fù)數(shù)0)

(7)“”(空字符串)

(8)[](空列表)

(9)()(空元組)

(10){}(空字典)

用戶自定義的類實(shí)例,如果定義了方法nonzero()或len(),那么這些方法會(huì)返回0或False。除了上述對(duì)象之外的所有其他對(duì)象的布爾值都為 True。本節(jié)涉及到很多后面講解的知識(shí),這里大家只需知道布爾值只能是True和False即可。

2.4.4 復(fù)數(shù)類型

復(fù)數(shù)類型用于表示數(shù)學(xué)中的復(fù)數(shù),例如,5+3j、?3.4?6.8j都是復(fù)數(shù)類型。Python中的復(fù)數(shù)類型是一般計(jì)算機(jī)語(yǔ)言所沒(méi)有的數(shù)據(jù)類型,它有以下兩個(gè)特點(diǎn):

(1)復(fù)數(shù)由實(shí)數(shù)部分和虛數(shù)部分構(gòu)成,表示為real+imagj或real+imagJ。

(2)復(fù)數(shù)的實(shí)數(shù)部分real和虛數(shù)部分imag都是浮點(diǎn)型。

需要注意的是,一個(gè)復(fù)數(shù)必須有表示虛部的實(shí)數(shù)和j,如1j、?1j都是復(fù)數(shù),而0.0不是復(fù)數(shù),并且表示虛部的實(shí)數(shù)部分即使是1也不能省略。

復(fù)數(shù)的示例代碼如下:

>>> a = 1+2j

>>> a

(1+2j)

>>> a.real   # 實(shí)數(shù)部分

1.0

>>> type(a.real)

<class 'float'>

>>> a.imag   # 虛數(shù)部分

2.0

>>> type(a.imag)

<class 'float'>

2.4.5 數(shù)字類型轉(zhuǎn)換

不同類型的數(shù)字類型之間可以進(jìn)行轉(zhuǎn)換,只不過(guò)轉(zhuǎn)換過(guò)程中,需要借助一些函數(shù),常見(jiàn)的數(shù)字類型之間的轉(zhuǎn)換方式如表2-1所示。

表2-1 數(shù)字類型之間的轉(zhuǎn)換

在表2-1中,第1個(gè)函數(shù)用于將數(shù)值轉(zhuǎn)為整型,第2個(gè)函數(shù)用于將數(shù)值轉(zhuǎn)為浮點(diǎn)型,第3個(gè)函數(shù)用于創(chuàng)建一個(gè)復(fù)數(shù),示例代碼如下:

# 將浮點(diǎn)數(shù)轉(zhuǎn)為整數(shù)

>> a=1.2

>>int(a)

1

# 將整數(shù)轉(zhuǎn)為浮點(diǎn)數(shù)

>> b=2

>> float(b)

2.0

# 創(chuàng)建一個(gè)復(fù)數(shù)

>> complex(3.4)

(3.4+0j)

主站蜘蛛池模板: 大理市| 阿合奇县| 白朗县| 玉树县| 高要市| 临武县| 海淀区| 东兰县| 仙桃市| 金门县| 天等县| 新晃| 沈阳市| 杨浦区| 边坝县| 清苑县| 翁牛特旗| 锦州市| 黑河市| 象山县| 江源县| 台北县| 女性| 兴义市| 安多县| 屏山县| 韩城市| 和田县| 苏尼特左旗| 沙雅县| 巫山县| 巢湖市| 华亭县| 金川县| 晋江市| 元朗区| 龙川县| 汪清县| 淮安市| 墨江| 云和县|