- 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)
- The Supervised Learning Workshop
- Oracle Exadata性能優(yōu)化
- Web Scraping with Python
- Hadoop+Spark大數(shù)據(jù)分析實(shí)戰(zhàn)
- R Deep Learning Cookbook
- 移動(dòng)界面(Web/App)Photoshop UI設(shè)計(jì)十全大補(bǔ)
- Visual FoxPro程序設(shè)計(jì)習(xí)題集及實(shí)驗(yàn)指導(dǎo)(第四版)
- 硅谷Python工程師面試指南:數(shù)據(jù)結(jié)構(gòu)、算法與系統(tǒng)設(shè)計(jì)
- ASP.NET開(kāi)發(fā)與應(yīng)用教程
- Visual Basic程序設(shè)計(jì)上機(jī)實(shí)驗(yàn)教程
- SQL Server數(shù)據(jù)庫(kù)管理與開(kāi)發(fā)兵書(shū)
- Bootstrap 4 Cookbook
- HTML5權(quán)威指南
- 從Power BI到Analysis Services:企業(yè)級(jí)數(shù)據(jù)分析實(shí)戰(zhàn)
- Java EE 8 and Angular