Python的數(shù)據(jù)類(lèi)型(二)
大家好,在上一次推送中,我們一起學(xué)習(xí)了Python數(shù)據(jù)結(jié)構(gòu)中的整數(shù)int、浮點(diǎn)數(shù)float以及復(fù)數(shù),今天我們一起來(lái)學(xué)習(xí)其他的一些數(shù)據(jù)類(lèi)型吧。
一、邏輯值
1.邏輯類(lèi)型:bool.
(1)用來(lái)作為判斷條件,是邏輯推理的基礎(chǔ):僅有兩個(gè)值:True、False.
(2)數(shù)值的比較得到邏輯值:3 > 4。
(3)邏輯值也有自己的運(yùn)算:and,or,not.
(4)可以讓計(jì)算機(jī)根據(jù)情況自動(dòng)作出選擇,更加聰明。
2.邏輯值
(1)邏輯值用來(lái)配合if/while等語(yǔ)句做條件判斷。
(2)其它數(shù)據(jù)類(lèi)型可以轉(zhuǎn)換為邏輯值:數(shù)值——0與非0 ,字符串——空串與非空串,容器——空容器與非空容器。None是False.

二、字符串:str
字符來(lái)自一個(gè)國(guó)際標(biāo)準(zhǔn)的大字符集Unicode,每種語(yǔ)言的字符都有一個(gè)編碼,包括表情符號(hào),可以用函數(shù)在編碼和字符之間轉(zhuǎn)換,chr:編碼到字符,ord:字符到編碼。

文字字符構(gòu)成的序列(“串”),可以表示姓名、手機(jī)號(hào)、快遞地址、菜名、詩(shī)歌、小說(shuō)。用雙引號(hào)或者單引號(hào)都可以表示字符串,多行字符串用三個(gè)連續(xù)單引號(hào)表示。字符串操作:+連接、*復(fù)制、len長(zhǎng)度,[start:end:step]用來(lái)提取一部分(切片slice)。
? ? ? ??

一些高級(jí)操作:split——分割;join——合并;upper/lower/swapcase——大小寫(xiě)相關(guān);ljust/center/rjust——排版左中右對(duì)齊;replace——替換子串。

類(lèi)型轉(zhuǎn)換。可以把一個(gè)數(shù)據(jù)對(duì)象轉(zhuǎn)換類(lèi)型,得到新的數(shù)據(jù)對(duì)象,如"8848","8844.43":字符串,8848:整數(shù),8844.43:浮點(diǎn)數(shù)。用類(lèi)型名稱(chēng)可以直接轉(zhuǎn)換,字符串轉(zhuǎn)數(shù)值:int()、float(),數(shù)值轉(zhuǎn)字符串:str()、bin()、oct()、hex().


三、列表和元組
Python中有幾種類(lèi)型是一系列元素組成的序列,以整數(shù)作為索引。字符串str是一種同類(lèi)元素的序列。列表list和元組tuple則可以容納不同類(lèi)型的元素,構(gòu)成序列。元組是不可更新(不可變)序列。字符串也是不能再更新的序列。列表則可以刪除、添加、替換、重排序列中的元素。
創(chuàng)建列表:[ ]或者list()。
創(chuàng)建元組:( )或者tuple()。
用索引[n]獲取元素(列表可變)。
+:連接兩個(gè)列表/元組。
*:復(fù)制n次,生成新列表/元 組? len():列表/元組中元素的個(gè)數(shù)。
in:某個(gè)元素是否存在
[start : end : step]:切片

?列表list的其他方法

可變類(lèi)型的變量引用情況
由于變量的引用特性,可變類(lèi)型的變量操作需要注意。多個(gè)變量通過(guò)賦值引用同一個(gè)可變類(lèi)型對(duì)象時(shí)通過(guò)其中任何一個(gè)變量改變了可變類(lèi)型對(duì)象,其它變量也看到了改變。
alist = [1,2,3,4]
blist = alist
blist[0] = 'abc' ? clist = alist[:]
Clist[0] = None

常用的連續(xù)序列生成器:range函數(shù)
range(n),從0到n-1的序列;range(start, end),從start到end-1的序列;range(start, end, step);從start到end-1,步長(zhǎng)間隔step,step可以是負(fù)數(shù)。range函數(shù)返回range類(lèi)型的對(duì)象,可以直接當(dāng)做序列用,也可以轉(zhuǎn)換為list或者tuple等容器類(lèi)型。
四、集合set
集合是不重復(fù)元素的無(wú)序組合,用set()從其它序列轉(zhuǎn)換生成集合。集合的常見(jiàn)操作in:判斷元素是否屬于集合;union():并集;&, intersection() :交集; -, difference() :差集;^, symmetric_difference() :異或;<=,<,>=,>:子集/真子集/超集/真超集。

add(x):集合中添加元素;remove(x):刪除指定元素;pop():刪除集合中任意元素并返回其值;clear():清空集合成為空集。如果經(jīng)常需要判斷元素是否在一組數(shù)據(jù)中,這些數(shù)據(jù)的次序不重要的話(huà),推薦使用集合,可以獲得比列表更好的性能。

五、字典dict
字典是通過(guò)鍵值key來(lái)索引元素value,而不是象列表是通過(guò)連續(xù)的整數(shù)來(lái)索引。字典是可變類(lèi)型,可以添 加、刪除、替換元素。字典中的元素value沒(méi)有順序,可以是任意類(lèi)型。字典中的鍵值key須是不可變類(lèi)型(數(shù)值/字符串/元組)。
建立大型數(shù)據(jù)結(jié)構(gòu)
嵌套列表:列表的元素是一些列表;alist[i][j];字典的元素可以是任意類(lèi)型,甚至也可以是字典;bands={'Marxes':['Moe','Curly']};字典的鍵值可以是任意不可變類(lèi)型,例如用元組來(lái)作為坐標(biāo),索引元素;poi={(100,100):'bus stop'}。

獲取輸入:input函數(shù)
用戶(hù)給程序的數(shù)據(jù)在他腦子里,如何告訴計(jì)算機(jī)?input函數(shù)通過(guò)鍵盤(pán)獲取用戶(hù)輸
入的字符串以回車(chē)符作為輸入結(jié)束,一行可以加一個(gè)提示符,可以把得到的字符串直接轉(zhuǎn)換成其他數(shù)據(jù)類(lèi)型。

打印輸出:print函數(shù)
計(jì)算機(jī)把處理結(jié)果反饋給用戶(hù) ? 用print在屏幕上顯示數(shù)據(jù)對(duì)象或者變量的值print(v1, v2, v3, ...);格式化字符串f-strings;f"Hello, {name}!";f"{name}, you have tried {n} times.";可選的參數(shù),sep=" ", end="\n"。
練一練
? 寫(xiě)一個(gè)完整的程序tc.py
? 要求輸入兩個(gè)直角邊長(zhǎng)度a, b
? 打印輸出斜邊上的高h(yuǎn),保留小數(shù)點(diǎn)后2位(打印輸出如何保留小數(shù)點(diǎn)后位數(shù)?例:c = math.sqrt()
print(f”c = {c:.2f}”))
推薦閱讀
1.為什么要學(xué)習(xí)Python編程:為什么要學(xué)習(xí)Python編程
2.Python的數(shù)據(jù)類(lèi)型:Python的數(shù)據(jù)類(lèi)型
? ? 《數(shù)據(jù)科學(xué)與人工智能》公眾號(hào)推薦朋友們學(xué)習(xí)和使用Python語(yǔ)言,需要加入Python語(yǔ)言群的,請(qǐng)掃碼加我個(gè)人微信,備注【姓名-Python群】,我誠(chéng)邀你入群,大家學(xué)習(xí)和分享。
