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

2.2 數(shù)據(jù)類型簡介

數(shù)據(jù)類型(Data Type)用來描述Python數(shù)據(jù)的類型,不同數(shù)據(jù)類型的數(shù)據(jù)有著不同的特性,如在存儲器中所占的空間大小、所允許存儲的數(shù)據(jù)類型、數(shù)據(jù)操控的方式等。

2.2.1 數(shù)值類型

Python的數(shù)值類型有整數(shù)(int)、浮點數(shù)(float)與布爾值(bool)3種,下面一一說明這些數(shù)值類型的用法。

·int(整數(shù)):整數(shù)數(shù)值類型用來存儲不含小數(shù)點的數(shù)據(jù),跟數(shù)學上的整數(shù)意義相同,如-1、-2、-100、0、1、2、100等。

·float(浮點數(shù)):帶有小數(shù)點的數(shù)字,也就是數(shù)學上的實數(shù);除了能用小數(shù)點表示外,也能使用科學記數(shù)法表示,如6e-2。

·bool(布爾值):一種表示邏輯的數(shù)值類型,是int的子類別,只有真假值,即True與False;布爾數(shù)值類型通常用于流程控制做邏輯判斷;也可以采用數(shù)值“1”或“0”來代表True或False。

Tips 使用布爾值False和True時要特別注意第一個字母必須大寫。

相同的數(shù)據(jù)類型才能進行運算,例如,字符串與整數(shù)不能相加,如要相加,必須先將字符串轉(zhuǎn)換為整數(shù)。如果運算數(shù)都是數(shù)值類型的話,Python會自動轉(zhuǎn)換,不需要強制轉(zhuǎn)換類型,例如下面的代碼。

total = 10+7.2 # 結(jié)果num=17.2 ( 浮點數(shù))

Python會自動將整數(shù)轉(zhuǎn)換為浮點數(shù)再進行運算。

另外,布爾值也可以當成數(shù)值來運算,True代表1,F(xiàn)alse代表0,例如下面的代碼。

total = 8 + True # 結(jié)果total =9 ( 整數(shù))

2.2.2 字符串數(shù)據(jù)類型

將一連串字符用單引號或雙引號引起來,就是一個字符串(string)。如果要將字符串指定給特定變量,可以使用賦值運算符“=”。范例如下。

phrase= " 心想事成"

以下是在Python中建立字符串的方式。

wordA = '' # 當單引號內(nèi)沒有任何字符時,它是一個空字符串
wordB = 'A' # 單一字符
wordC ="Happy" # 建立字符串時,也可以使用雙引號

如果字符串本身包含雙引號或單引號,則可以使用另外一種引號來引住該字符串。以下兩種表示方式都是正確的。

title = " 地表最簡易的'Python' 入門書"

或是

title = ' 地表最簡易的"Python" 入門書'

上述語句的輸出結(jié)果如圖2.3所示。

圖2.3

如果想直接將數(shù)值數(shù)據(jù)轉(zhuǎn)為字符串,可以使用內(nèi)置函數(shù)str()來完成,例如下面的代碼。

str()        # 輸出空字符串
str(123)  # 將數(shù)值轉(zhuǎn)為字符串'123'

當字符串較長時,也可以利用“\”將過長的字符串拆成多行,例如下面的代碼。

slogan=" 人進來 \
貨出去 \
全國發(fā)大財"

當需要依照固定的格式來輸出字符串時,則可以利用三重單引號或三重雙引號來括住使用者指定的字符串格式,如圖2.4所示。

圖2.4

字符串中的字符是有前后順序的,如果要連接多個字符串,可以利用“+”實現(xiàn),如圖2.5所示。

圖2.5

另外,字符串的索引值具有順序性,如果要取得單一字符或子字符串,可以使用“[]”運算符,而從字符串中截取子字符串的動作就稱為“切片”(Slicing)運算。

表2.2所示為“[]”運算符的各項功能說明。

表2.2 運算符“[]”的功能說明

例如,我們聲明一個字符串“msg='Sunday is fun!'”,index值若從第一個字符(左邊)開始,則從0開始;若從最后一個字符(右邊)開始,則從-1開始,如表2.3所示。

表2.3 索引由編號index值示例

以下示范了幾種常見的取得子字符串的方式。

msg[2 : 5]   # 不含索引值為5 的字符,可取得3 個字符
msg[6: 14]  # 可取到最后一個字符
msg[6 :]     # 表示msg[6 : 14]
msg[:5]      # 省略start 時,表示從索引值0 開始取5 個字符
msg[4:8]    # 索引編號為4~7,取4 個字符

上述各種字符串的切片運算的執(zhí)行結(jié)果如圖2.6所示。

圖2.6

字符串中有一些特殊字符無法利用鍵盤來輸入或顯示于屏幕上,這時候必須在這些特殊字符前加上反斜線“\”才可使用,這就是“轉(zhuǎn)義字符”(Escape Character)。轉(zhuǎn)義字符具有某些特殊的控制功能。表2.4所示為Python的轉(zhuǎn)義字符說明。

表2.4 Python的轉(zhuǎn)義字符說明

例如下面的代碼。

sentence = " 今日事! \n 今日畢! "

當使用print()函數(shù)將topic字符串的內(nèi)容輸出時,“今日畢!”就會顯示在第二行,這是因為在輸出“今日畢!”前,必須先行輸出轉(zhuǎn)義字符“\n”,它是用來告知系統(tǒng)進行換行動作的,執(zhí)行結(jié)果如圖2.7所示。

圖2.7

以下程序范例將介紹各種常用轉(zhuǎn)義字符的使用方式及綜合應用。

【程序范例:escape.py】轉(zhuǎn)義字符應用范例

01 print(" 顯示反斜線: " + '\\')
02 print(" 顯示單引號: " + '\'');
03 print(" 顯示雙引號: " + '\"');
04 print(" 顯示十六進制數(shù): " + '\u0068')
05 print(" 顯示八進制數(shù): " + '\123')
06 print(" 顯示倒退一個字符: " + '\b' + "xyz")
07 print(" 顯示空字符: " + "xy\0z")
08 print(" 雙引號的應用->\" 轉(zhuǎn)義字符的綜合運用\”\n")

圖2.8

程序解說

◆第1~7行:示范如何輸出特定的轉(zhuǎn)義字符。

◆第8行:轉(zhuǎn)義字符的綜合運用,此處示范了如何輸出雙引號及利用“\n”進行換行。

2.2.3 type()函數(shù)

這里要特別介紹type()函數(shù),它能列出變量的數(shù)據(jù)類型。前文提到在Python中使用變量時不用事先聲明,變量在被賦值時才會決定變量的數(shù)據(jù)類型。也就是說,在Python程序設計過程中,變量的數(shù)據(jù)類型經(jīng)常會改變。如果想要了解目前變量的數(shù)據(jù)類型,可以使用type()函數(shù)來返回指定變量的數(shù)據(jù)類型。接下來的程序范例將使用type()函數(shù)列出各種變量的數(shù)據(jù)類型。

【程序范例:type.py】使用type()函數(shù)列出變量的數(shù)據(jù)類型

01 a=8
02 b=3.14
03 c=True
04 print(a)
05 print(type(a))
06 print(b)
07 print(type(b))
08 print(c)
09 print(type(c))

執(zhí)行結(jié)果如圖2.9所示。

圖2.9

程序解說

◆第1~3行:分別賦值整數(shù)、浮點數(shù)及布爾值給abc 3個變量。

◆第5~9行:從執(zhí)行結(jié)果可以看出變量a的值為8,數(shù)據(jù)類型是整數(shù)(int);變量b的值為3.14,數(shù)據(jù)類型是浮點數(shù)(float);變量c的值為True,數(shù)據(jù)類型是布爾值(bool)。

2.2.4 數(shù)據(jù)類型轉(zhuǎn)換

在設計程序時,如果要運算不同數(shù)據(jù)類型的變量,就必須進行數(shù)據(jù)類型的轉(zhuǎn)換。通常數(shù)據(jù)類型轉(zhuǎn)換功能分為“自動類型轉(zhuǎn)換”與“強制類型轉(zhuǎn)換”。

“自動類型轉(zhuǎn)換”是指由解釋器來判斷應轉(zhuǎn)換成何種數(shù)據(jù)類型,例如,當整數(shù)與浮點數(shù)進行運算時,系統(tǒng)會事先將整數(shù)自動轉(zhuǎn)換為浮點數(shù)之后再進行運算,運算結(jié)果為浮點數(shù)。例如下面的代碼。

total= 7 + 3.5 # 其運算結(jié)果為浮點數(shù) 10.5

整數(shù)與字符串之間無法自動轉(zhuǎn)換數(shù)據(jù)類型,當對整數(shù)與字符串進行加法運算時,則會產(chǎn)生錯誤。輸入以下語句,會出現(xiàn)數(shù)據(jù)類型錯誤的警告提示,如圖2.10所示。

total = 125+ " 總得分"

圖2.10

除了由系統(tǒng)自動進行類型轉(zhuǎn)換之外,Python也允許使用者強制轉(zhuǎn)換數(shù)據(jù)類型。例如,想將兩個整數(shù)數(shù)據(jù)相除時,可以強制進行類型轉(zhuǎn)換,暫時將整數(shù)數(shù)據(jù)轉(zhuǎn)換成浮點數(shù)數(shù)據(jù)類型。

以下3個函數(shù)為常見的Python強制數(shù)據(jù)類型轉(zhuǎn)換的函數(shù)。

·int()函數(shù):將數(shù)據(jù)強制轉(zhuǎn)換為整數(shù)數(shù)據(jù)類型。

·float()函數(shù):將數(shù)據(jù)強制轉(zhuǎn)換為浮點數(shù)數(shù)據(jù)類型。

·str()函數(shù):將數(shù)據(jù)強制轉(zhuǎn)換為字符串數(shù)據(jù)類型。

例如下面的代碼。

num=int("1357") # 這個函數(shù)會將字符串轉(zhuǎn)換成整數(shù),num 的值就會等于1357
num=float("3.14159") # 這個函數(shù)會將字符串轉(zhuǎn)換成浮點數(shù),num 的值就會等于3.14159
主站蜘蛛池模板: 鲁山县| 苗栗市| 海宁市| 平果县| 醴陵市| 谷城县| 广德县| 林西县| 高清| 陕西省| 九龙城区| 沅江市| 义乌市| 永济市| 色达县| 呼玛县| 滁州市| 清水县| 兰溪市| 嘉黎县| 松江区| 定安县| 湟中县| 广州市| 鲁甸县| 陆河县| 太原市| 会昌县| 梅河口市| 封开县| 嘉峪关市| 本溪| 通榆县| 永顺县| 文昌市| 古丈县| 漳平市| 鄄城县| 荃湾区| 昭觉县| 郓城县|