- Python入門很輕松(微課超值版)
- 云尚科技
- 1849字
- 2020-09-01 15:57:59
2.4 基本數(shù)據(jù)類型

微視頻
Python 3.x版本中有兩個(gè)簡(jiǎn)單的數(shù)據(jù)類型,即數(shù)字類型和字符串類型。
2.4.1 數(shù)字類型
Python 3.x版本支持int、float、bool、complex 4種數(shù)字類型。
☆大牛提醒☆
在Python 2中是沒有bool的,用數(shù)字0表示False,用1表示True。在Python 3中,把True和False定義成了關(guān)鍵字,但它們的值還是1和0,可以和數(shù)字相加。
1.int(整數(shù))
下面是整數(shù)的例子:
>>> a = 666688 >>> a 666688
可以使用十六進(jìn)制數(shù)值來(lái)表示整數(shù),十六進(jìn)制整數(shù)的表示法是在數(shù)字之前加上0x,如0x80120000、0x100010100L。
例如:
>>> a=0x6EEEFFFF >>> a 1861156863
2.float(浮點(diǎn)數(shù))
浮點(diǎn)數(shù)的表示法可以使用小數(shù)點(diǎn),也可以使用指數(shù)的類型。指數(shù)符號(hào)可以使用字母e或E來(lái)表示,指數(shù)可以使用+/-符號(hào),也可以在指數(shù)數(shù)值前加上數(shù)值0,還可以在整數(shù)前加上數(shù)值0。
例如:
6.66 12. .007 1e100 3.14E-10 1e010 08.1
使用float()內(nèi)置函數(shù),可以將整數(shù)數(shù)據(jù)類型轉(zhuǎn)換為浮點(diǎn)數(shù)數(shù)據(jù)類型。例如:
>>> float(660) 660.0
3.bool(布爾值)
Python的布爾值包括True和False,只與整數(shù)中的1和0有對(duì)應(yīng)關(guān)系。例如:
>>> True==1 True >>> True==2 False >>> False==0 True >>> False==-1 False
這里利用符號(hào)==判斷左右兩邊是否絕對(duì)相等。
4.complex(復(fù)數(shù))
復(fù)數(shù)的表示法是使用雙精度浮點(diǎn)數(shù)來(lái)表示實(shí)數(shù)與虛數(shù)的部分,復(fù)數(shù)的符號(hào)可以使用字母j或J。
例如:
1.5 + 0.5j 1J 2 + 1e100j 3.14e-10j
數(shù)值之間可以通過運(yùn)算符進(jìn)行運(yùn)算操作。例如:
>>> 50 + 40 #加法 90 >>> 5.6 - 2 #減法 3.6 >>> 30 * 15 #乘法 450 >>> 1/2 #除法,得到一個(gè)浮點(diǎn)數(shù) 0.5 >>> 1//2 #除法,得到一個(gè)整數(shù) 0 >>> 15 % 2 #取余 1 >>> 2 ** 10 #乘方 1024
在數(shù)字運(yùn)算時(shí),需要注意以下問題:
(1)數(shù)值的除法(/)總是返回一個(gè)浮點(diǎn)數(shù),要獲取整數(shù)需使用//操作符。
(2)在整數(shù)和浮點(diǎn)數(shù)混合計(jì)算時(shí),Python會(huì)把整數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù)。
【例2.2】計(jì)算學(xué)生的總成績(jī)和平均成績(jī)(源代碼\ch02\2.2.py)。
name="張小明" #保存學(xué)生的姓名 print ("該學(xué)生的姓名是:"+name) maths=92.5 #保存學(xué)生的數(shù)學(xué)成績(jī) #使用內(nèi)置的str()函數(shù)可以將數(shù)值轉(zhuǎn)換為字符串 print("該學(xué)生的數(shù)學(xué)成績(jī)是:"+str(maths)) chinese=65.5 #保存學(xué)生的語(yǔ)文成績(jī) print("該學(xué)生的語(yǔ)文成績(jī)是:"+ str(chinese)) english=80.5 #保存學(xué)生的英語(yǔ)成績(jī) print("該學(xué)生的英語(yǔ)成績(jī)是:"+ str(english)) sum= maths+chinese+english #保存學(xué)生的總成績(jī) print("該學(xué)生的總成績(jī)是:"+str(sum)) avg= sum/3 #保存學(xué)生的平均成績(jī) print("該學(xué)生的平均成績(jī)是:"+str(avg)) #使用if語(yǔ)句判斷學(xué)生的成績(jī)?nèi)绾? if avg<65: print ("該學(xué)生的成績(jī)較差") if 65<=avg<75: print ("該學(xué)生的成績(jī)及格") if 75<=avg<90: print ("該學(xué)生的成績(jī)良好") if avg>=90: print ("該學(xué)生的成績(jī)優(yōu)秀")
程序運(yùn)行結(jié)果如圖2-2所示。

圖2-2 例2.2的程序運(yùn)行結(jié)果
2.4.2 字符串類型
Python將字符串視為一連串的字符組合。在Python中,字符串屬于不可變序列,通常使用單引號(hào)、雙引號(hào)或者三引號(hào)括起來(lái)。這三種引號(hào)形式在語(yǔ)義上沒有區(qū)別,只是在形式上有些差別。其中單引號(hào)和雙引號(hào)的字符序列必須在一行上,而三引號(hào)內(nèi)的字符序列可以分布在連續(xù)的多行上。
例如下面的代碼:
>>> a="張小明" #使用雙引號(hào)時(shí),字符串的內(nèi)容必須在一行 >>> b='最喜歡的水果' #使用單引號(hào)時(shí),字符串的內(nèi)容必須在一行 >>> c='''驟雨?yáng)|風(fēng)對(duì)遠(yuǎn)灣,滂然遙接石龍關(guān)。 野渡蒼松橫古木,斷橋流水動(dòng)連環(huán)。 客行此去遵何路,坐眺長(zhǎng)亭意轉(zhuǎn)閑。''' >>> print (a) 張小明 >>> print (b) 最喜歡的水果 >>> print (c) 驟雨?yáng)|風(fēng)對(duì)遠(yuǎn)灣,滂然遙接石龍關(guān)。 野渡蒼松橫古木,斷橋流水動(dòng)連環(huán)。 客行此去遵何路,坐眺長(zhǎng)亭意轉(zhuǎn)閑。
【例2.3】輸出一個(gè)小屋圖形(源代碼\ch02\2.3.py)。
由于該字符畫有多行,所以使用三引號(hào)作為定界符比較合適。代碼如下:
print(''' @@@@@@@@@ @ @ @ @ @ @ @ @ @@@@@@@@@@@@@@@@@@@ @ @ @ @@@@@ @ @ @ @ @ @ @ @@@@@ @ @ @ @ @ @@@@@@@@@@@@@@@ ''')
程序運(yùn)行結(jié)果如圖2-3所示。

圖2-3 例2.3的程序運(yùn)行結(jié)果
☆大牛提醒☆
字符串開頭與結(jié)尾的引號(hào)要一致。
下面的案例將字符串開頭使用了雙引號(hào)、結(jié)尾使用了單引號(hào)。
>>> a = "hello world' Traceback ( File "<interactive input>", line 1 a = " hello world ' ^ SyntaxError: invalid token
由此可見,當(dāng)字符串開頭與結(jié)尾的引號(hào)不一致時(shí),Python會(huì)顯示一個(gè)invalid token的信息。
2.4.3 數(shù)據(jù)類型的相互轉(zhuǎn)換
有時(shí)候,用戶需要對(duì)數(shù)據(jù)內(nèi)置的類型進(jìn)行轉(zhuǎn)換。數(shù)據(jù)類型的轉(zhuǎn)換,只需要將數(shù)據(jù)類型作為函數(shù)名即可。以下幾個(gè)內(nèi)置的函數(shù)可以執(zhí)行數(shù)據(jù)類型之間的轉(zhuǎn)換,這些函數(shù)返回一個(gè)新的對(duì)象,表示轉(zhuǎn)換的值。
1.轉(zhuǎn)換為整數(shù)類型
語(yǔ)法格式如下:
int(x)
將x轉(zhuǎn)換為一個(gè)整數(shù)。例如:
>>>int(3.6) 3
☆大牛提醒☆
int()函數(shù)不能轉(zhuǎn)換成非數(shù)字類型的數(shù)值。例如,使用int()函數(shù)轉(zhuǎn)換字符串時(shí),將會(huì)提示ValueError錯(cuò)誤。例如:
>>> int("16個(gè)工作日") Traceback (most recent call last): File "<pyshell#0>", line 1, in <module> int("16個(gè)工作日") ValueError: invalid literal for int() with base 10: '16個(gè)工作日'
2.轉(zhuǎn)換為小數(shù)類型
語(yǔ)法格式如下:
float(x)
將x轉(zhuǎn)換為一個(gè)浮點(diǎn)數(shù)。例如:
>>> float (10) 10.0
3.轉(zhuǎn)換為字符串類型
語(yǔ)法格式如下:
str(x)
將x轉(zhuǎn)換為一個(gè)字符串。例如:
>>>str(123567) '123567'
【例2.4】模擬出租車的抹零結(jié)賬行為(源代碼\ch02\2.4.py)。
假設(shè)出租車司機(jī)因?yàn)檎伊沐X比較麻煩,所以進(jìn)行抹零操作。這里int()函數(shù)將浮點(diǎn)型的變量轉(zhuǎn)換為整數(shù)類型,從而實(shí)現(xiàn)抹零效果。本案例還會(huì)用到str()函數(shù),主要作用是將數(shù)字轉(zhuǎn)換為字符串類型。
ranges=5.6 #保存乘客坐車的距離 moneys=8+(ranges-3)*2 #計(jì)算總票價(jià) print("本次車費(fèi)是:"+ str(moneys)) real_moneys=int(moneys) #進(jìn)行抹零操作 print("本次實(shí)付車費(fèi)是:"+ str(real_moneys))
程序運(yùn)行結(jié)果如圖2-4所示。

圖2-4 例2.4的程序運(yùn)行結(jié)果
- UML和模式應(yīng)用(原書第3版)
- 算法精粹:經(jīng)典計(jì)算機(jī)科學(xué)問題的Java實(shí)現(xiàn)
- Xcode 7 Essentials(Second Edition)
- OpenCV 3和Qt5計(jì)算機(jī)視覺應(yīng)用開發(fā)
- C語(yǔ)言程序設(shè)計(jì)案例式教程
- 零基礎(chǔ)學(xué)Python網(wǎng)絡(luò)爬蟲案例實(shí)戰(zhàn)全流程詳解(入門與提高篇)
- 微服務(wù)架構(gòu)深度解析:原理、實(shí)踐與進(jìn)階
- Python深度學(xué)習(xí):模型、方法與實(shí)現(xiàn)
- Statistical Application Development with R and Python(Second Edition)
- Android嵌入式系統(tǒng)程序開發(fā):基于Cortex-A8(第2版)
- Java EE基礎(chǔ)實(shí)用教程
- Java入門經(jīng)典
- Java Web程序員面試筆試寶典
- Expert Angular
- Instant Buildroot