Python深度學(xué)習(xí)及智能車競賽實(shí)踐 課件 第5、6章 組合數(shù)據(jù)類型、文件和數(shù)據(jù)格式化_第1頁
Python深度學(xué)習(xí)及智能車競賽實(shí)踐 課件 第5、6章 組合數(shù)據(jù)類型、文件和數(shù)據(jù)格式化_第2頁
Python深度學(xué)習(xí)及智能車競賽實(shí)踐 課件 第5、6章 組合數(shù)據(jù)類型、文件和數(shù)據(jù)格式化_第3頁
Python深度學(xué)習(xí)及智能車競賽實(shí)踐 課件 第5、6章 組合數(shù)據(jù)類型、文件和數(shù)據(jù)格式化_第4頁
Python深度學(xué)習(xí)及智能車競賽實(shí)踐 課件 第5、6章 組合數(shù)據(jù)類型、文件和數(shù)據(jù)格式化_第5頁
已閱讀5頁,還剩191頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第五章組合數(shù)據(jù)類型Python深度學(xué)習(xí)及智能車競賽實(shí)踐010203概述序列類型及其操作集合類型及其操作目錄第2頁040506字典類型及其操作實(shí)例:用類創(chuàng)建智能車自動(dòng)巡航字典jieba庫07wordcloud庫010203概述序列類型及其操作集合類型及其操作目錄第3頁040506字典類型及其操作實(shí)例:用類創(chuàng)建智能車自動(dòng)巡航字典jieba庫07wordcloud庫計(jì)算機(jī)不僅需要對(duì)單個(gè)變量表示的數(shù)據(jù)進(jìn)行處理,更多情況,計(jì)算機(jī)需要對(duì)一組數(shù)據(jù)進(jìn)行批量處理。一些例子:給定一組數(shù)據(jù)集的標(biāo)簽值{car,truck,bus,people,bicycle},統(tǒng)計(jì)數(shù)據(jù)集中每一類標(biāo)簽的數(shù)量;給定一段車輛行駛的數(shù)據(jù),統(tǒng)計(jì)該段數(shù)據(jù)中加速狀態(tài)所占的比例;智能車競賽所用攝像頭采集到了產(chǎn)生了很多組圖片數(shù)據(jù),對(duì)這些圖片數(shù)據(jù)進(jìn)行分析。1.概述

組合數(shù)據(jù)類型能夠?qū)⒍鄠€(gè)同類型或不同類型的數(shù)據(jù)組織起來,通過單一的表示使數(shù)據(jù)操作更有序更容易;根據(jù)數(shù)據(jù)之間的關(guān)系,組合數(shù)據(jù)類型可以分為三類:1.序列類型2.集合類型3.映射類型1.概述組合數(shù)據(jù)類型序列類型集合類型映射類型集合(set)字符串(str)元組(tuple)列表(list)字典(dict)是一個(gè)元素向量,元素之間存在先后關(guān)系,通過序號(hào)訪問,元素之間不排他。是一個(gè)元素集合,元素之間無序,相同元素在集合中唯一存在。是“鍵-值”數(shù)據(jù)項(xiàng)的組合,每個(gè)元素是一個(gè)鍵值對(duì),表示為(key,value)。1.概述010203概述

序列類型及其操作集合類型及其操作目錄第7頁040506字典類型及其操作實(shí)例:用類創(chuàng)建智能車自動(dòng)巡航字典jieba庫07wordcloud庫序列類型元素之間存在先后關(guān)系,通過序號(hào)訪問,當(dāng)需要訪問序列中某特定值時(shí),只需要通過下標(biāo)標(biāo)出即可,所有序列類型使用相同的索引體系,即正向遞增和反向遞減序號(hào)。序列元素之間存在順序關(guān)系,可以存在相同數(shù)值但位置不同的元素。反向遞減序號(hào)正向遞增序號(hào)cartruckbuspedestrianbicycle2.序列類型及其操作序列類型6個(gè)通用操作符操作符及應(yīng)用描述xins如果x是序列s的元素,返回True,否則返回Falsexnotins如果x是序列s的元素,返回False,否則返回Trues+t連接兩個(gè)序列s和ts*n或n*s將序列s復(fù)制n次s[i]索引,返回s中的第i個(gè)元素,i是序列的序號(hào)s[i:j]

或s[i:j:k]切片,返回序列s中第i到j(luò)以k為步長的元素子序列2.序列類型及其操作2.序列類型及其操作>>>

ls=["python",123,

"競賽"]>>>

ls[::-1]['python',123,'競賽']['競賽',123,'python']['nohtyp',321,'競賽'][321,'競賽','nohtyp']

ABCD函數(shù)和方法描述len(s)返回序列s的長度,即元素個(gè)數(shù)min(s)返回序列s的最小元素,s中元素需要可比較max(s)返回序列s的最大元素,s中元素需要可比較s.index(x)或s.index(x,i,j)返回序列s從i開始到j(luò)位置中第一次出現(xiàn)元素x的位置s.count(x)返回序列s中出現(xiàn)x的總次數(shù)序列類型5個(gè)通用函數(shù)和方法2.序列類型及其操作>>>ls=["python",123,

"競賽"]>>>

len(ls)3>>>s="vehicle100">>>max(s)'v'序列類型操作實(shí)例2.序列類型及其操作02序列類型及其操作2.1元組類型2.2列表類型目錄第13頁元組是一種序列類型,一旦創(chuàng)建就不能被修改使用小括號(hào)()或tuple()創(chuàng)建,元素間用逗號(hào)分隔可以使用或不使用小括號(hào)2.1元組類型>>>vehicle="truck","car","bus","vans">>>vehicle('truck','car','bus',‘vans')>>>obstacle=("pedestrian",100,"animal",

vehicle)>>>obstacle('pedestrian',100,'animal',('truck','car','bus','vans'))>>>obstacle[2]'animal'>>>obstacle=

('pedestrian',100,'animal',('truck','car','bus','vans')>>>obstacle[-1][2]2.1元組類型'truck''car''bus''vans'ABCD

元組類型在表達(dá)固定數(shù)據(jù)項(xiàng)、函數(shù)多返回值、多變量同步賦值、循環(huán)遍歷等情況下十分有用。>>>deffunc(n):

#函數(shù)多返回值returnn,n**5>>>a,b=‘truck',‘car'#多變量同步賦值>>>a,b=(b,a)#多變量同步賦值,括號(hào)可省略>>>importmath>>>forx,yin((1,2),(3,7),(4,6)):

#循環(huán)遍歷print(math.hypot(x,y))#求多個(gè)坐標(biāo)值到原點(diǎn)的距離2.1元組類型02序列類型及其操作2.1元組類型2.2列表類型目錄第17頁列表是一種序列類型,創(chuàng)建后可以隨意被修改;使用方括號(hào)[]或list()創(chuàng)建,元素間用逗號(hào)“,”

分隔;列表中各元素類型可以不同,無長度限制。2.2列表類型>>>

list0=[0,1,2,3,4]>>>

list0[0,1,2,3,4]>>>

list1=["123",1,3.0,[1,2],{"key":"val"}]>>>

list1['123',1,3.0,[1,2],{'key':'val'}]>>>list2=[list0,list1]>>>

list2[[0,1,2,3,4],['123',1,3.0,[1,2],{'key':'val'}]]列表用中括號(hào)([])表示,也可以通過list()函數(shù)將元組或字符串轉(zhuǎn)化成列表。直接使用list()函數(shù)會(huì)返回一個(gè)空列表。索引是列表的基本操作,用于獲得列表的一個(gè)元素,使用[]作為索引操作符。>>>ls=['pedestrian',100,'animal',('truck','car','bus','vans')]>>>ls['pedestrian',100,'animal',('truck','car','bus','vans')]>>>ls[3][-1][0]‘V'>>>list(('pedestrian',100,'animal','vehicle'))#將元組轉(zhuǎn)換成列表['pedestrian',100,'animal','vehicle']>>>list(“百度智慧交通創(chuàng)意賽”)#將字符串轉(zhuǎn)換成列表['百','度','智','慧','交','通','創(chuàng)','意','賽']>>>list()[]2.2列表類型['全','國','大','學(xué)','生','智','能','汽','車','競','賽']['我','來','啦']['全','國','大','學(xué)','生','智','能','汽','車','競','賽','我','來','啦']['*','*','*','*','*'][1,2,1,2,1,2,1,2,1,2]列表數(shù)據(jù)結(jié)構(gòu)支持通過列表的組合生成新列表,通過“+”運(yùn)算符實(shí)現(xiàn)列表的拼接,通過“*”運(yùn)算符實(shí)現(xiàn)列表的復(fù)制。2.2列表類型與整數(shù)和字符串不同,列表要處理一組數(shù)據(jù),因此,列表必須通過顯式的數(shù)據(jù)賦值才能生成,簡單將一個(gè)列表賦值給另一個(gè)列表不會(huì)生成新的列表對(duì)象。>>>ls=[125,“Vehicle",10.1]#用數(shù)據(jù)賦值產(chǎn)生列表ls>>>lt=ls#lt是ls所對(duì)應(yīng)數(shù)據(jù)的引用,lt并不包含真實(shí)數(shù)據(jù)>>>ls[0]=0>>>lt[0,‘Vehicle',10.1]2.2列表類型[125,"Vehicle",10.1]lslt由于列表屬于序列類型,所以列表也支持成員關(guān)系操作符(in)、長度計(jì)算函數(shù)(len())、分片([])、遍歷等操作。列表可以同時(shí)使用正向遞增序號(hào)和反向遞減序號(hào)進(jìn)行元素值索引,可以采用標(biāo)準(zhǔn)的比較操作符(<、<=、==、!=、>=、>)進(jìn)行比較,列表的比較實(shí)際上是單個(gè)數(shù)據(jù)項(xiàng)的逐個(gè)比較。2.2列表類型列表的遍歷與元組一樣,列表可以通過for…in語句對(duì)其元素進(jìn)行遍歷,基本語法結(jié)構(gòu)如下:for<任意變量名>in<列表名>:

語句塊

2.2列表類型ls1=[100,"Vehicle",'bicycle',300]ls2=[x*2forxinls1]print(ls2)[200,'VehicleVehicle','bicyclebicycle',600]列表的遍歷2.2列表類型ls1=[100,"Vehicle",'bicycle',300]foriinls1:print(i*2)print(ls1*2)200VehicleVehiclebicyclebicycle600[100,'Vehicle','bicycle',300,100,'Vehicle','bicycle',300]200VehicleVehiclebicyclebicycle600[200,‘Vehicle’,‘Vehicle’,‘bicycle’

,600]AB

切片是列表的基本操作,用于獲得列表的一個(gè)片段,即獲得一個(gè)或多個(gè)元素。切片后的結(jié)果也是列表類型,切片有兩種使用方式:<列表或列表變量>[N:M]或<列表或列表變量>[N:M:K]

<列表或列表變量>[N:M]:獲取列表類型從N到M(不包含M)的元素組成新的列表。2.2列表類型列表的切片<列表或列表變量>[N:M:K]:切片獲取列表類型從N到M(不包含M)以K為步長所對(duì)應(yīng)元素組成的列表。當(dāng)N不存在時(shí),缺省值為0,從第一個(gè)元素開始截?。划?dāng)M不存在時(shí),截取到最后一個(gè)元素;

當(dāng)M<=N時(shí),截取到的是空列表。當(dāng)K不存在時(shí),切片獲取列表類型從N到M(不包含M)的元素組成新的列表。>>>ls=[100,"Vehicle",'bicycle',300]>>>ls[1:4]["Vehicle",'bicycle',300]>>>ls[-1:-3][]>>>ls[-3:-1]['Vehicle','bicycle']>>>ls[0:4:2][1010,'bicycle']>>>ls[2:]['bicycle',300]>>>ls[:3][100,"Vehicle",'bicycle']2.2列表類型列表類型繼承序列類型特點(diǎn),有一些通用的操作函數(shù)

操作符描述len(ls)列表ls的元素個(gè)數(shù)(長度)min(ls)列表ls中的最小元素max(ls)列表ls中的最大元素list(x)將x轉(zhuǎn)變成列表類型>>ls=[100,"Vehicle",'bicycle',300]

>>>len(ls)4>>>lt=[?

vans",[100,"Vehicle",'bicycle',[1,30]]]>>>len(lt)22.2列表類型列表的操作方法函數(shù)或方法描述ls.append(x)在列表ls最后增加一個(gè)元素xls.clear()刪除ls中所有元素ls.copy()生成一個(gè)新列表,復(fù)制ls中所有元素ls.insert(i,x)在列表ls第i位置增加元素xls.pop(i)將列表ls中第i項(xiàng)元素取出并刪除該元素ls.remove(x)將列表中出現(xiàn)的第一個(gè)元素x刪除ls.reverse()列表ls中元素反轉(zhuǎn)2.2列表類型請(qǐng)分析下面程序輸出結(jié)果2.2列表類型4190['b2','c1','e0','f3'][7,68,767,876]['f3','e0','c1','b2'][876,767,68,7]['b2','c1','e0','f3'][7,68,767,876]列表的操作方法-排序2.2列表類型[5,1,68,2,3][5,1,68,2,3,[200,101]][5,1,2,3,[100,101]][5,1,2,3,100,101][5,1,2,3,100,101,'7','8','9']2.2列表類型列表的操作方法-增加元素TrueTrueFalseTrueTraceback(mostrecentcalllast):File"D:\5\5.7compare.py",line7,in<module>print(list0>=456)#'>='不支持不同類型對(duì)象的比較TypeError:'>='notsupportedbetweeninstancesof'list'and'int'2.2列表類型列表的操作方法-比較大小可以使用Python保留字del對(duì)列表元素或片段進(jìn)行刪除,使用方法如下:del<列表變量>[<索引序號(hào)>]或del<列表變量>[<索引起始>:<索引結(jié)束>]>>>lt=[100,"Vehicle",'bicycle',300]>>>dellt[1]>>>print(lt)[100,'bicycle',300]>>>dellt[1:]>>>print(lt)[100]2.2列表類型列表的操作方法-del列表在實(shí)現(xiàn)基本數(shù)據(jù)統(tǒng)計(jì)時(shí)發(fā)揮了重要作用:列表是一個(gè)動(dòng)態(tài)長度的數(shù)據(jù)結(jié)構(gòu),可以根據(jù)需求增加或減少元素;列表的一系列方法或操作符為計(jì)算提供了簡單的元素運(yùn)算手段;列表提供了對(duì)每個(gè)元素的簡單訪問方式及所有元素的遍歷方式。

2.2列表類型列表是一個(gè)十分靈活的數(shù)據(jù)結(jié)構(gòu),它具有處理任意長度、混合類型的能力,并提供了豐富的基礎(chǔ)操作符和方法。當(dāng)程序需要使用組合數(shù)據(jù)類型管理批量數(shù)據(jù)時(shí),請(qǐng)盡量使用列表類型??偨Y(jié)010203概述

序列類型及其操作集合類型及其操作目錄第35頁040506字典類型及其操作實(shí)例:用類創(chuàng)建智能車自動(dòng)巡航字典jieba庫07wordcloud庫集合類型與數(shù)學(xué)中集合的概念一致,是包含0個(gè)或多個(gè)數(shù)據(jù)項(xiàng)的無序組合。集合中元素不可重復(fù),元素類型只能是固定數(shù)據(jù)類型,例如:整數(shù)、浮點(diǎn)數(shù)、字符串、元組等,列表、字典和集合類型本身都是可變數(shù)據(jù)類型,不能作為集合的元素。3.集合類型及其操作{}和

set()函數(shù)可以用于生成集合,集合用大括號(hào)({})表示。由于集合元素是無序的,集合的輸出效果與定義順序可以不一致。>>>S={100,"Vehicle",(20,'bicycle'),300}>>>S{(20,'bicycle'),100,300,'Vehicle'}>>>S=set((100,"Vehicle",(20,'bicycle'),300))>>>S{(20,'bicycle'),100,300,'Vehicle'}3.集合類型及其操作由于集合元素獨(dú)一無二,使用集合類型能夠過濾掉重復(fù)元素;由于集合是無序組合,它沒有索引和位置的概念,不能切片;集合中元素可以動(dòng)態(tài)增加或刪除。{'a','l','b'}{1,2,3}3.集合類型及其操作集合類型有4個(gè)常用操作符,交集(&)、并集(|)、差集(-)、補(bǔ)集(^),操作邏輯與數(shù)學(xué)定義相同。3.集合類型及其操作操作符描述A-B返回一個(gè)新集合,包括在集合A中但不在集合B中的元素A&B返回一個(gè)新集合,包括同時(shí)在集合A和B中的元素A^B返回一個(gè)新集合,包括集合A和B中元素,但不包括同時(shí)在其中的元素A|B返回一個(gè)新集合,包括集合A和B中所有元素>>>S={1010,"2010",77.6}>>>T={1010,"2010",12.8,1010,1010}>>>S|T>>>T|S>>>S-T>>>T–S>>>S&T>>>T&S>>>S^T>>>T^S已知集合S和T,求他們經(jīng)過如下數(shù)學(xué)操作運(yùn)算后的結(jié)果。>>>S|T{77.6,1010,12.8,'2010'}>>>T|S{1010,12.8,77.6,'2010'}>>>S-T{77.6}>>>T–S{12.8}>>>S&T{1010,'2010'}>>>T&S{1010,'2010'}>>>S^T{77.6,12.8}>>>T^S{77.6,12.8}3.集合類型及其操作集合類型常用的操作函數(shù)(或方法)3.集合類型及其操作函數(shù)或方法描述S.add(x)如果數(shù)據(jù)項(xiàng)x不在集合S中,將x增加到SS.clear()移除S中所有數(shù)據(jù)項(xiàng)S.remove(x)如果x在集合S中,移除該元素;len(S)返回集合S元素個(gè)數(shù)xinS如果x是S的元素,返回True,否則返回FalsexnotinS如果x不是S的元素,返回True,否則返回FalseAfterbusberomoved,set0is{'truck'}Afterbusbediscarded,set1is{'truck'}Afterbusbediscardedagain,set1is{'truck'}Afteroneelementbepopped,set2is{'bus'}Afterset3becleared,set3isset()3.集合類型及其操作集合主要用于三個(gè)場景:成員關(guān)系測試、元素去重和刪除數(shù)據(jù)項(xiàng):集合類型與其他類型最大的不同在于它不包含重復(fù)元素,因此,當(dāng)需要對(duì)一維數(shù)據(jù)進(jìn)行去重或進(jìn)行數(shù)據(jù)重復(fù)處理時(shí),一般用集合來完成。>>>tup=("car","truck","bus","truck","pedestrain","bus","bicycle")>>>print(set(tup))#元素去重{'bus','bicycle','pedestrain','car','truck'}>>>print("car"in{"car","truck","bus","pedestrain","bicycle"})True>>>newtup=tuple(set(tup)-{"car"})#去重同時(shí)刪除數(shù)據(jù)項(xiàng)print(newtup)('bus','truck','bicycle','pedestrain')3.集合類型及其操作集合使用{}和set()函數(shù)創(chuàng)建集合間操作:交(&)、并(|)、差(-)、補(bǔ)(^)、比較(>=<)集合類型方法:.add()、.remove()、.pop()等集合類型主要應(yīng)用于:包含關(guān)系比較、數(shù)據(jù)去重總結(jié)3.集合類型及其操作010203概述

序列類型及其操作集合類型及其操作目錄第45頁040506字典類型及其操作實(shí)例:用類創(chuàng)建智能車自動(dòng)巡航字典jieba庫07wordcloud庫字典類型屬于映射類型,映射類型是“鍵-值”數(shù)據(jù)項(xiàng)的組合,每個(gè)元素是一個(gè)鍵值對(duì),即元素是(key,value),元素之間是無序的。鍵值對(duì)(key,value)是一種二元關(guān)系。在Python中,映射類型主要以字典(dict)體現(xiàn)。CarColor={“1號(hào)賽車”:“黃色”,“2號(hào)賽車”:“黑色”}1號(hào)賽車2號(hào)賽車黑色紅色白色黃色1號(hào)賽車:黃色2號(hào)賽車:黑色4.字典類型及其操作映射類型是序列類型的一種擴(kuò)展。在序列類型中,采用從0開始的正向遞增序號(hào)或者-1開始的反向遞減序號(hào)進(jìn)行具體元素值的索引。而映射類型則用“鍵”去索引具體的“值”。

鍵(key)表示一個(gè)屬性,也可以理解為一個(gè)類別或項(xiàng)目,值(value)是屬性的內(nèi)容,鍵值對(duì)刻畫了一個(gè)屬性和它的值。鍵值對(duì)將映射關(guān)系結(jié)構(gòu)化,用于存儲(chǔ)和表達(dá)。4.字典類型及其操作CarColor={“1號(hào)賽車”:“黃色”,“2號(hào)賽車”:“黑色”}“鍵值對(duì)”是組織數(shù)據(jù)的一種重要方式,廣泛應(yīng)用在Web系統(tǒng)中。鍵值對(duì)的基本思想是將“值”信息關(guān)聯(lián)一個(gè)“鍵”信息,進(jìn)而通過鍵信息查找對(duì)應(yīng)值信息,這個(gè)過程叫映射。Python語言中通過字典類型實(shí)現(xiàn)映射。Python語言中的字典可以通過大括號(hào)({})建立,建立模式如下:

{<鍵1>:<值1>,<鍵2>:<值2>,…,<鍵n>:<值n>}

其中,鍵和值通過冒號(hào)連接,不同鍵值對(duì)通過逗號(hào)隔開。4.字典類型及其操作字典打印出來的順序與創(chuàng)建之初的順序可能不同,這不是錯(cuò)誤。字典類型也具有和集合類似的性質(zhì),各元素之間,即鍵值對(duì)之間沒有順序且不能重復(fù)。>>>Dcountry={"中國":"北京","美國":"華盛頓","法國":"巴黎"}>>>print(Dcountry){'中國':'北京','法國':'巴黎','美國':'華盛頓'}4.字典類型及其操作字典元素“鍵值對(duì)”中鍵是值的索引,因此,可以直接利用鍵值對(duì)關(guān)系索引元素,通過鍵索引值,并可以通過鍵修改值。字典中鍵值對(duì)的訪問模式如下,采用中括號(hào)格式: <值>=<字典變量>[<鍵>]>>>Dcountry={"中國":"北京","美國":"華盛頓","法國":"巴黎"}>>>Dcountry["中國"]'北京‘>>>Dcountry["中國"]='大北京'>>>print(Dcountry){'中國':'大北京','法國':'巴黎','美國':'華盛頓'}4.字典類型及其操作通過中括號(hào)可以增加新的元素

直接使用{}可以創(chuàng)建一個(gè)空的字典,并通過中括號(hào)[]向其增加元素。>>>Dcountry={"中國":"北京","美國":"華盛頓","法國":"巴黎"}>>>Dcountry["英國"]="倫敦">>>print(Dcountry){'中國':'北京','法國':'巴黎','美國':'華盛頓','英國':'倫敦'}>>>Dp={}>>>Dp['2^10']=1024>>>print(Dp){'2^10':1024}4.字典類型及其操作字典類型有一些通用的操作函數(shù)>>>Dcountry={"中國":"北京","美國":"華盛頓","法國":"巴黎"}>>>len(Dcountry)34.字典類型及其操作操作符描述len(d)字典d的元素個(gè)數(shù)(長度)min(d)字典d中的最小元素max(d)字典d中的最大元素dict()生成一個(gè)空字典dict()函數(shù)用于生成一個(gè)空字典,作用和{}一致。min(d)和max(d)分別返回字典d中最小或最大索引值。>>>>d={"201801":"小明","201802":"小紅","201803":"小白”}>>>min(d)'201801'>>>max(d)'201803'>>>d=dict()>>>print(d){}4.字典類型及其操作字典類型通用的操作方法4.字典類型及其操作操作符描述d.keys()返回所有的鍵信息d.values()返回所有的值信息d.items()返回所有的鍵值對(duì)d.get(key,default)鍵存在則返回相應(yīng)值,否則返回默認(rèn)值d.pop(key,default)鍵存在則返回相應(yīng)值,同時(shí)刪除鍵值對(duì),否則返回默認(rèn)值d.popitem()隨機(jī)從字典中取出一個(gè)鍵值對(duì),以元組(key,value)形式返回d.clear()刪除所有的鍵值對(duì)d.keys()返回字典中的所有鍵信息,返回結(jié)果是Python的一種內(nèi)部數(shù)據(jù)類型dict_keys,專用于表示字典的鍵,如果希望更好的使用返回結(jié)果,可以將其轉(zhuǎn)換為列表類型。>>>Dcountry={"中國":"北京","美國":"華盛頓","法國":"巴黎"}>>>Dcountry.keys()dict_keys(['中國','美國','法國'])>>>type(Dcountry.keys())<class'dict_keys'>>>>list(Dcountry.keys())['中國','美國','法國']4.字典類型及其操作d.values()返回字典中的所有值信息,返回結(jié)果是Python的一種內(nèi)部數(shù)據(jù)類型dict_values。如果希望更好的使用返回結(jié)果,可以將其轉(zhuǎn)換為列表類型。>>>Dcountry={"中國":"北京","美國":"華盛頓","法國":"巴黎"}>>>Dcountry.values()dict_values(['北京','華盛頓','巴黎'])>>>type(Dcountry.values())<class'dict_values'>>>>list(Dcountry.values())['北京','華盛頓','巴黎']4.字典類型及其操作d.items()返回字典中的所有鍵值對(duì)信息,返回結(jié)果是Python的一種內(nèi)部數(shù)據(jù)類型dict_items。>>>Dcountry={"中國":"北京","美國":"華盛頓","法國":"巴黎"}>>>Dcountry.items()dict_items([('中國','北京'),('美國','華盛頓'),('法國','巴黎')])>>>type(Dcountry.items())<class'dict_items'>>>>list(Dcountry.items())[('中國','北京'),('美國','華盛頓'),('法國','巴黎')]4.字典類型及其操作d.get(key,default)根據(jù)鍵信息查找并返回值信息,如果key存在則返回相應(yīng)值,否則返回默認(rèn)值,第二個(gè)元素default可以省略,如果省略則默認(rèn)值為空。>>>Dcountry={"中國":"北京","美國":"華盛頓","法國":"巴黎"}>>>Dcountry.get('美國','悉尼')#'美國'在字典中存在'華盛頓'>>>Dcountry.get('澳大利亞','悉尼')#'澳大利亞'在字典中不存在'悉尼'4.字典類型及其操作d.pop(key,default)根據(jù)鍵信息查找并取出值信息,如果key存在則返回相應(yīng)值,否則返回默認(rèn)值,第二個(gè)元素default可以省略,如果省略則默認(rèn)值為空。相比d.get()方法,d.pop()在取出相應(yīng)值后,將從字典中刪除對(duì)應(yīng)的鍵值對(duì)。>>>Dcountry={"中國":"北京","美國":"華盛頓","法國":"巴黎"}>>>Dcountry.pop(“中國”,“首爾")'北京'>>>Dcountry.pop(“韓國”,“首爾")‘首爾’>>>Dcountry{'美國':'華盛頓','法國':'巴黎'}4.字典類型及其操作d.popitem()隨機(jī)從字典中取出一個(gè)鍵值對(duì),以元組(key,value)形式返回,取出后從字典中刪除這個(gè)鍵值對(duì)。d.clear()刪除字典中所有鍵值對(duì)。>>>Dcountry={"中國":"北京","美國":"華盛頓","法國":"巴黎"}>>>Dcountry.popitem()('法國','巴黎')>>>Dcountry{'中國':'北京','美國':'華盛頓'}>>>Dcountry={"中國":"北京","美國":"華盛頓","法國":"巴黎"}>>>country.clear()>>>Dcountry[]4.字典類型及其操作如果希望刪除字典中某一個(gè)元素,可以使用Python保留字del。字典類型也支持保留字in,用來判斷一個(gè)鍵是否在字典中。如果在則返回True,否則返回False。>>>Dcountry={"中國":"北京","美國":"華盛頓","法國":"巴黎"}>>>delDcountry["美國"]>>>Dcountry{'中國':'北京','法國':'巴黎'}>>>Dcountry={"中國":"北京","美國":"華盛頓","法國":"巴黎"}>>>"中國"inDcountryTrue>>>“德國"inDcountryFalse4.字典類型及其操作與其他組合類型一樣,字典可以通過for…in語句對(duì)其元素進(jìn)行遍歷,基本語法結(jié)構(gòu)如下:for <變量名>in<字典名>:

語句塊>>>Dcountry={"中國":"北京","美國":"華盛頓","法國":"巴黎"}>>>forkeyinDcountry:print(key)中國美國法國4.字典類型及其操作for循環(huán)返回的變量名是字典的索引值,如果需要獲得鍵對(duì)應(yīng)的值,可以在語句塊中通過get()方法獲得。>>>forkinDcountry:

print("鍵和值分別是:{}和{}".format(k,Dcountry.get(k)))鍵和值分別是:中國和北京鍵和值分別是:美國和華盛頓鍵和值分別是:法國和巴黎4.字典類型及其操作實(shí)例:使用字典實(shí)現(xiàn)英文詞頻統(tǒng)計(jì)編寫Python程序接受一段字符串,統(tǒng)計(jì)在該字符串中每個(gè)單詞出現(xiàn)的次數(shù),將單詞和出現(xiàn)的次數(shù)以鍵值對(duì)形式加入列表中4.字典類型及其操作字典是一個(gè)鍵值對(duì)的集合,該集合以鍵為索引,一個(gè)鍵信息只對(duì)應(yīng)一個(gè)值信息,字典中元素以鍵信息為索引訪問;字典長度是可變的,可以通過對(duì)鍵信息賦值實(shí)現(xiàn)增加或修改鍵值對(duì)。

總結(jié)4.字典類型及其操作010203概述

序列類型及其操作集合類型及其操作目錄第66頁040506字典類型及其操作實(shí)例:用類創(chuàng)建智能車自動(dòng)巡航字典jieba庫07wordcloud庫在全國大學(xué)生智能汽車競賽百度智慧交通組比賽中,可以使用深度學(xué)習(xí)模型來控制小車前進(jìn)的方向,深度學(xué)習(xí)模型輸入圖像信息,輸出小車前進(jìn)的轉(zhuǎn)向角??梢杂靡粋€(gè)字典存儲(chǔ)信息,字典的鍵為圖片名稱,值為小車的轉(zhuǎn)向角度,如果同一圖片輸入多次,求多次輸入轉(zhuǎn)向角的平均值為該圖片最后的轉(zhuǎn)角值。編寫程序使用鍵盤輸入模擬讀取圖片,生成圖片和轉(zhuǎn)向角度的鍵值對(duì)字典。5.14cruisedict.py5.實(shí)例:用類創(chuàng)建智能車自動(dòng)巡航字典010203概述

序列類型及其操作集合類型及其操作目錄第68頁040506字典類型及其操作實(shí)例:用類創(chuàng)建智能車自動(dòng)巡航字典jieba庫07wordcloud庫06

jieba庫6.1jieba庫簡介6.2《智能汽車創(chuàng)新發(fā)展戰(zhàn)略》

文本詞頻統(tǒng)計(jì)目錄第69頁對(duì)于一段英文文本,例如“Chinaisagreatcountry”,如果希望提取其中的單詞,用什么辦法?>>>

"Chinaisagreatcountry".split()['China','is','a','great','country']6.1Jieba庫簡介對(duì)于一段中文文本,例如“中國是一個(gè)偉大的國家”,如果希望提取其中的詞組(不是字符),用什么辦法?>>>"中國是一個(gè)偉大的國家".split()['中國是一個(gè)偉大的國家']英文文本通過空格或標(biāo)點(diǎn)符號(hào)分隔,而中文單詞之間缺少分隔符,這是中文及類似語言獨(dú)有的“分詞”問題。jieba是Python中一個(gè)重要的第三方中文分詞函數(shù)庫,需要通過pip指令安裝。:\>pipinstalljieba#或者pip3installjiebapipinstallrequests報(bào)錯(cuò)“‘pip’不是內(nèi)部或外部命令,也不是可運(yùn)行的程序或批處理文件”

解決辦法有如下兩種:cd進(jìn)入Python安裝目錄下的子..\Scripts子目錄下再安裝。配置系統(tǒng)環(huán)境變量,具體方面見文件”配置系統(tǒng)環(huán)境變量.pdf6.1Jieba庫簡介jieba庫的常用函數(shù)6.1Jieba庫簡介函數(shù)描述jieba.cut(s)精確模式,返回一個(gè)可迭代的數(shù)據(jù)類型jieba.cut(s,cut_all=True)全模式,輸出文本s中所有可能單詞jieba.cut_for_search(s)搜索引擎模式,適合搜索引擎建立索引的分詞結(jié)果jieba.lcut(s)精確模式,返回一個(gè)列表類型,建議使用jieba.lcut(s,cut_all=True)全模式,返回一個(gè)列表類型,建議使用jieba.lcut_for_search(s)搜索引擎模式,返回一個(gè)列表類型,建議使用jieba.add_word(w)向分詞詞典中增加新詞w>>>importjieba>>>jieba.cut

("全國大學(xué)生智能汽車競賽")<generatorobjectTokenizer.cutat0x02D0A540>#生成一個(gè)可迭代的數(shù)據(jù)類型>>>

list(jieba.cut("全國大學(xué)生智能汽車競賽",))['全國','大學(xué)生','智能','汽車','競賽']>>>jieba.cut("百度智慧交通創(chuàng)意賽",True)#輸出文本中所有可能詞組<generatorobjectTokenizer.cutat0x02D0A540>>>>list(jieba.cut("全國大學(xué)生智能汽車競賽",True))['全國','國大','大學(xué)','大學(xué)生','學(xué)生','智能','汽車','競賽']>>>list(jieba.cut_for_search("全國大學(xué)生智能汽車競賽"))['全國','大學(xué)','學(xué)生','大學(xué)生','智能','汽車','競賽']6.1Jieba庫簡介>>>importjieba>>>

jieba.lcut("全國大學(xué)生智能汽車競賽")['全國','大學(xué)生','智能','汽車','競賽']>>>jieba.lcut("全國大學(xué)生智能汽車競賽",cut_all=True)['全國','國大','大學(xué)','大學(xué)生','學(xué)生','智能','汽車','競賽']>>>jieba.lcut_for_search("全國大學(xué)生智能汽車競賽")['全國','大學(xué)','學(xué)生','大學(xué)生','智能','汽車','競賽']6.1Jieba庫簡介>>>num_list=[6,8,4,1,10]>>>print(num_list)[6,8,4,1,10]>>>num_list.sort()>>>num_list[1,4,6,8,10]>>>L=[('b',6),('a',1),('c',3),('d',4)]>>>L.sort()>>>L[('a',1),('b',6),('c',3),('d',4)]>>L.sort(key=lambdax:x[1])>>>L[('a',1),('c',3),('d',4),('b',6)]>>L.sort(key=lambdax:x[0])>>>L[('a',1),('b',6),('c',3),('d',4)]sort()函數(shù)提供了一個(gè)key參數(shù),這個(gè)參數(shù)是一個(gè)函數(shù),這個(gè)函數(shù)只能有一個(gè)返回值,其返回值用來進(jìn)行比較.key參數(shù)接受列表L里的每個(gè)元素的第二個(gè)參數(shù),根據(jù)第二個(gè)參數(shù)的排序,確定整體的排序。6.1Jieba庫簡介>>>counts={"汽車":20,"發(fā)展":10,"智能":23,"基礎(chǔ)":8}>>>items=list(counts.items())>>>items[('汽車',20),('發(fā)展',10),('智能',23),('基礎(chǔ)',8)]>>>items.sort()>>>items[('發(fā)展',10),('基礎(chǔ)',8),('智能',23),('汽車',20)]>>>items.sort(key=lambdax:x[1])>>>items[('基礎(chǔ)',8),('發(fā)展',10),('汽車',20),('智能',23)]>>>items.sort(key=lambdax:x[1],reverse=True)>>>items[('智能',23),('汽車',20),('發(fā)展',10),('基礎(chǔ)',8)]6.1Jieba庫簡介06

jieba庫6.1jieba庫簡介6.2“智能汽車創(chuàng)新發(fā)展戰(zhàn)略”

文本詞頻統(tǒng)計(jì)目錄第77頁在很多情況下,會(huì)遇到這樣的問題:對(duì)于一篇給定文章,希望統(tǒng)計(jì)其中多次出現(xiàn)的詞語,進(jìn)而概要分析文章的內(nèi)容,這個(gè)問題的解決可用于對(duì)網(wǎng)絡(luò)信息進(jìn)行自動(dòng)檢索和歸檔。在信息爆炸時(shí)代,這種歸檔或分類十分有必要,這就是“詞頻統(tǒng)計(jì)”問題。文本詞頻統(tǒng)計(jì)6.2“智能汽車創(chuàng)新發(fā)展戰(zhàn)略”文本詞頻統(tǒng)計(jì)

給定”智能汽車創(chuàng)新發(fā)展戰(zhàn)略.txt”,統(tǒng)計(jì)其高頻詞第一步:需要引用jieba庫對(duì)文本進(jìn)行分詞處理。

words=jieba.lcut(txt)第二步:對(duì)分詞進(jìn)行計(jì)數(shù)第三走:對(duì)分詞的統(tǒng)計(jì)值從高到低進(jìn)行排序6.2“智能汽車創(chuàng)新發(fā)展戰(zhàn)略”文本詞頻統(tǒng)計(jì)6.2“智能汽車創(chuàng)新發(fā)展戰(zhàn)略”文本詞頻統(tǒng)計(jì)>>>

智能94汽車86發(fā)展33基礎(chǔ)25建設(shè)23安全22產(chǎn)業(yè)21體系21加強(qiáng)20完善19應(yīng)用17系統(tǒng)17開展16能力16企業(yè)166.2“智能汽車創(chuàng)新發(fā)展戰(zhàn)略”文本詞頻統(tǒng)計(jì)010203概述

序列類型及其操作集合類型及其操作目錄第82頁040506字典類型及其操作實(shí)例:用類創(chuàng)建智能車自動(dòng)巡航字典jieba庫07wordcloud庫07

wordcloud庫7.1wordcloud庫簡介7.2“二十大報(bào)告”詞云

目錄第83頁wordcloud是優(yōu)秀的詞云展示第三方庫

詞云以詞語為基本單位,直觀和藝術(shù)地展示文本《交通強(qiáng)國綱要》詞云7.1wordcloud庫簡介wordcloud庫的安裝wordcloud庫可通過pip指令安裝。:\>pipinstallwordcloud

#或者pip3installwordcloud7.1wordcloud庫簡介wordcloud庫把詞云當(dāng)作一個(gè)WordCloud對(duì)象wordcloud.WordCloud()代表一個(gè)文本對(duì)應(yīng)的詞云可以根據(jù)文本中詞語出現(xiàn)的頻率等繪制詞云詞云的繪制形狀、尺寸和顏色都可以設(shè)定7.1wordcloud庫簡介wordcloud庫常用方法w=wordcloud.WordCloud()方法描述w.generate(txt)向WordCloud對(duì)象w中加載文本txt

>>>w.generate("Taketimewhentimecomeslesttimestealaway")w.to_file(filename)將詞云輸出為圖像文件,.png或.jpg格式

>>>w.to_file("outfile.png")7.1wordcloud庫簡介-步驟1:配置對(duì)象參數(shù)-步驟2:加載詞云文本-步驟3:輸出詞云文件importwordcloudc=wordcloud.WordCloud()c.generate("Taketimewhentimecomeslesttimestealaway")c.to_file("pywordcloud.png")7.1wordcloud庫簡介wordcloud庫詞云生成步驟文本詞云①分隔:以空格分隔單詞②統(tǒng)計(jì):單詞出現(xiàn)次數(shù)并過濾③字體:根據(jù)統(tǒng)計(jì)配置字號(hào)④布局:顏色環(huán)境尺寸"Taketimewhentimecomeslesttimestealaway"7.1wordcloud庫簡介配置對(duì)象參數(shù)w=wordcloud.WordCloud(<參數(shù)>)參數(shù)描述width指定詞云對(duì)象生成圖片的寬度,默認(rèn)400像素

>>>w=wordcloud.WordCloud(width=600)height指定詞云對(duì)象生成圖片的高度,默認(rèn)200像素

>>>w=wordcloud.WordCloud(height=400)7.1wordcloud庫簡介參數(shù)描述min_font_size指定詞云中字體的最小字號(hào),默認(rèn)4號(hào)

>>>w=wordcloud.WordCloud(min_font_size=10)max_font_size指定詞云中字體的最大字號(hào),根據(jù)高度自動(dòng)調(diào)節(jié)

>>>w=wordcloud.WordCloud(max_font_size=20)font_step指定詞云中字體字號(hào)的步進(jìn)間隔,默認(rèn)為1

>>>w=wordcloud.WordCloud(font_step=2)配置對(duì)象參數(shù)7.1wordcloud庫簡介參數(shù)描述font_path指定字體文件的路徑,默認(rèn)None

>>>w=wordcloud.WordCloud(font_path="msyh.ttc")max_words指定詞云顯示的最大單詞數(shù)量,默認(rèn)200

>>>w=wordcloud.WordCloud(max_words=20)stopwords指定詞云的排除詞列表,即不顯示的單詞列表

>>>w=wordcloud.WordCloud(stopwords={"的","了"})配置對(duì)象參數(shù)7.1wordcloud庫簡介參數(shù)描述mask指定詞云形狀,默認(rèn)為長方形,需要引用imread()函數(shù)>>>fromscipy.miscimportimread

>>>mk=imread("pic.png")

>>>w=wordcloud.WordCloud(mask=mk)background_color指定詞云圖片的背景顏色,默認(rèn)為黑色>>>w=wordcloud.WordCloud(background_color="white")配置對(duì)象參數(shù)7.1wordcloud庫簡介07

wordcloud庫7.1wordcloud庫簡介7.2“二十大報(bào)告”詞云

目錄第94頁任務(wù):

“二十大報(bào)告”詞云生成;目的:直觀理解國家重大文件。7.2“二十大報(bào)告”詞云問題分析需求:對(duì)于國家重大政策文件,如何直觀理解?體會(huì)直觀的價(jià)值:生成詞云&優(yōu)化詞云國家重大文件有效展示的詞云7.2“二十大報(bào)告”詞云步驟1:讀取文件、分詞整理步驟2:設(shè)置并輸出詞云步驟3:觀察結(jié)果,優(yōu)化迭代基本思路7.2“二十大報(bào)告”詞云#5.1620Report1.pyimportjiebaimportwordcloudf=open("二十大報(bào)告.txt","r",encoding="utf-8")t=f.read()f.close()ls=jieba.lcut(t)txt="".join(ls)w=wordcloud.WordCloud(font_path="msyh.ttc",\width=1000,height=700,background_color="white",\)w.generate(txt)w.to_file("20Report1.png")7.2“二十大報(bào)告”詞云7.2“二十大報(bào)告”詞云中國共產(chǎn)黨二十大報(bào)告#5.1720Report2.pyimportjiebaimportwordcloudf=open("二十大報(bào)告.txt","r",encoding="utf-8")t=f.read()f.close()ls=jieba.lcut(t)txt="".join(ls)w=wordcloud.WordCloud(font_path="msyh.ttc",\width=1000,height=700,background_color="white",\stopwords={“的”,“和”,“等”,“與”,“新”},max_words=25)w.generate(txt)w.to_file("20report2.png")最多顯示25個(gè)詞7.2“二十大報(bào)告”詞云7.2“二十大報(bào)告”詞云中國共產(chǎn)黨二十大報(bào)告智能汽車創(chuàng)新發(fā)展戰(zhàn)略7.2“二十大報(bào)告”詞云本章總結(jié)掌握Python的列表類型、字典類型和集合類型的基本概念與使用方法;了解并能使用jieba和wordcloud庫。第六章文件和數(shù)據(jù)格式化Python深度學(xué)習(xí)及智能車競賽實(shí)踐目錄第105頁010203文件

OS庫zipfile庫040506數(shù)據(jù)的格式化和處理PIL庫OpenCV庫01文件1.1文件的理解1.2文件的打開和關(guān)閉1.3文件的讀取和寫入1.4實(shí)例:賽車道自動(dòng)繪制目錄第106頁格式化將字符串按照一定規(guī)格和式樣進(jìn)行規(guī)范將一組數(shù)據(jù)按照一定規(guī)格和式樣進(jìn)行規(guī)范:表示、存儲(chǔ)、運(yùn)算等"{

}{

}{

}".format()字符串格式化數(shù)據(jù)格式化文件和數(shù)據(jù)格式化1.1文件的理解文件是數(shù)據(jù)的抽象和集合文件是存儲(chǔ)在輔助存儲(chǔ)器上的數(shù)據(jù)序列文件是數(shù)據(jù)存儲(chǔ)的一種形式文件展現(xiàn)形態(tài):文本文件和二進(jìn)制文件1.1文件的理解文本文件vs.二進(jìn)制文件文本文件和二進(jìn)制文件只是文件的展示方式本質(zhì)上,所有文件都是二進(jìn)制形式存儲(chǔ)形式上,所有文件采用兩種方式展示1.1文件的理解文本文件由單一特定編碼組成的文件,如UTF-8編碼由于存在編碼,也被看成是存儲(chǔ)著的長字符串適用于例如:.txt文件、.py文件等1.1文件的理解直接由比特0和1組成,沒有統(tǒng)一字符編碼一般存在二進(jìn)制0和1的組織結(jié)構(gòu),即文件格式適用于例如:.png文件、.avi文件等二進(jìn)制文件1.1文件的理解文本形式二進(jìn)制形式(十六進(jìn)制顯示)"全國大學(xué)生智能汽車競賽"全國大學(xué)生智能汽車競賽b'\xc8\xab\xb9\xfa\xb4\xf3\xd1\xa7\xc9\xfa\xd6\xc7\xc4\xdc\xc6\xfb\xb3\xb5\xbe\xba\xc8\xfc'1.1文件的理解6.1testfile.txt文件保存:"全國大學(xué)生智能汽車競賽"#以文本形式打開文件,編碼方式為utf-8#r表示讀文件,t表示文本格式tf=open("test_file.txt","rt")print(tf.readline())tf.close()>>>全國大學(xué)生智能汽車競賽1.1文件的理解#以二進(jìn)制形式打開文件#r表示讀文件,b表示二進(jìn)制格式bf=open("test_file.txt","rb")print(bf.readline())bf.close()>>>b'\xe5\x85\xa8\xe5\x9b\xbd\xe5\xa4\xa7\xe5\xad\xa6\xe7\x94\x9f\xe6\x99\xba\xe8\x83\xbd\xe6\xb1\xbd\xe8\xbd\xa6\xe7\xab\x9e\xe8\xb5\x9b'無論文件創(chuàng)建為文本文件或者二進(jìn)制文件,都可以用“文本文件方式”和“二進(jìn)制文件方式”打開,打開后的操作不同。1.1文件的理解6.2readbinfile.txt文件保存:"全國大學(xué)生智能汽車競賽"01文件1.1文件概述1.2文件的打開和關(guān)閉1.3文件的讀取和寫入1.4實(shí)例:賽車道自動(dòng)繪制目錄第115頁P(yáng)ython對(duì)文本文件和二進(jìn)制文件采用統(tǒng)一的操作步驟:

“打開-操作-關(guān)閉”1.2文件的打開和關(guān)閉文件的打開<變量名>=open(<文件名>,<打開模式>)文件句柄文件路徑和名稱源文件同目錄可省路徑文本or二進(jìn)制讀or寫1.2文件的打開和關(guān)閉文件路徑和名稱源文件同目錄可省路徑"D:/pycodes/c6/a.txt""D:\\pycodes\\c6\\a.txt"“a.txt""./pycodes/c6/a.txt"1.2文件的打開和關(guān)閉文件路徑<變量名>=open(<文件名>,<打開模式>)文件的打開模式描述'r'只讀模式,默認(rèn)值,如果文件不存在,返回FileNotFoundError'w'覆蓋寫模式,文件不存在則創(chuàng)建,存在則完全覆蓋'x'創(chuàng)建寫模式,文件不存在則創(chuàng)建,存在則返回FileExistsError'a'追加寫模式,文件不存在則創(chuàng)建,存在則在文件最后追加內(nèi)容'b'二進(jìn)制文件模式't'文本文件模式,默認(rèn)值'+'與r/w/x/a一同使用,在原功能基礎(chǔ)上增加同時(shí)讀寫功能1.2文件的打開和關(guān)閉f=open("a.txt")f=open("a.txt","rt")f=open("a.txt","w")f=open("a.txt","a+")f=open("a.txt","x")f=open("a.txt","b")f=open("a.txt","wb")-文本形式、只讀模式、默認(rèn)值-文本形式、只讀模式、同默認(rèn)值-文本形式、覆蓋寫模式-文本形式、追加寫模式+讀文件-文本形式、創(chuàng)建寫模式-二進(jìn)制形式、只讀模式-二進(jìn)制形式、覆蓋寫模式1.2文件的打開和關(guān)閉文件打開模式#文本形式打開文件tf=open("a.txt","rt")print(tf.readline())tf.close()#二進(jìn)制形式打開文件bf=open("a.txt","rb")print(bf.readline())bf.close()1.2文件的打開和關(guān)閉文件使用<變量名>.close()文件句柄1.2文件的打開和關(guān)閉文件的關(guān)閉#二進(jìn)制形式打開文件bf=open("a.txt","rb")print(bf.readline())bf.close()01文件1.1文件概述1.2文件的打開和關(guān)閉1.3文件的讀取和寫入1.4實(shí)例:賽車道自動(dòng)繪制目錄第123頁1.3文件的讀取和寫入操作方法描述<f>.read(size=-1)

讀入全部內(nèi)容;

如果給出參數(shù),讀入前size長度

>>>s=f.read(2)"全國"<f>.readline(size=-1)讀入一行內(nèi)容,如果給出參數(shù),讀入該行前size長度

>>>s=f.readline()

"全國大學(xué)生智能汽車競賽"<f>.readlines(hint=-1)讀入文件所有行,以每行為元素形成列表如果給出參數(shù),讀入前hint行

>>>s=f.readlines()[‘全國大學(xué)生智能汽車競賽\n’,’智慧交通創(chuàng)意賽\n’]文件讀取方法遍歷全文件:方法一1.3文件的讀取和寫入:一次讀入,統(tǒng)一處理#實(shí)例6.3.1readtextfile.py讀取文件內(nèi)容f=open("test_file.txt","r",encoding="utf-8")str=f.read()print("theresultofreadingis:",str)f.close()6.3.1readtextfile.py#實(shí)例6.3.2readtextfile.py讀取文件內(nèi)容f=open("test_file.txt","r",encoding="utf-8")str=f.read(5)print("theresultofreadingis:",str)print("theremainingwordsare:",f.read())f.close():按數(shù)量讀入,逐步處理1.3文件的讀取和寫入遍歷全文件:方法二6.3.2readtextfile.py#實(shí)例6.3.3readtextfile2.py讀取文件內(nèi)容f=open("test_file2.txt","r",encoding="utf-8")print(“theresultofreadingis:\n)forlineinf.readlines():print(line)f.close()1.3文件的讀取和寫入逐行遍歷文件:方法一:一次讀入,分行處理6.3.3readtextfile2.py1.3文件的讀取和寫入:分行讀入,逐行處理逐行遍歷文件:方法二#實(shí)例6.3.4readtextfile2.py讀取文件內(nèi)容f=open("test_file2.txt","r",encoding="utf-8")print(“theresultofreadingis:\n)forlineinf:print(line)f.close()6.3.4readtextfile2.py操作方法描述<f>.write(s)向文件寫入一個(gè)字符串或字節(jié)流

>>>f.write("全國大學(xué)生智能汽車競賽")

<f>.writelines(lines)將一個(gè)元素全為字符串的列表寫入文件

>>>ls=["智能車","智慧交通","自動(dòng)駕駛"]

>>>f.writelines(ls)"智能車智慧交通自動(dòng)駕駛"1.3文件的讀取和寫入文件寫入方法操作方法描述<f>.seek(offset)改變當(dāng)前文件操作指針的位置,offset含義如下:

0–文件開頭;1–當(dāng)前位置;2–文件結(jié)尾

>>>f.seek(0)#回到文件開頭

1.3文件的讀取和寫入文件的指針1.3文件的讀取和寫入#實(shí)例6.9writefile.pywrite()方法使用f=open("test_file3.txt","w+",encoding="utf-8")print(f.write("全國大學(xué)生\n智能汽車競賽"))f.close()6.9writefile.py1.3文件的讀取和寫入#實(shí)例6.10writelines.pywritelines()方法使用f=open("test_file4.txt","w+",encoding="utf-8")ls=["全國大學(xué)生\n","智能汽車\n","競賽"]f.writelines(ls)f.close()6.10writelines.py-寫入一個(gè)字符串列表>>>(沒有任何輸出)文件打開后,對(duì)文件的讀寫有一個(gè)指針,對(duì)文件進(jìn)行讀寫操做時(shí),指針將向前進(jìn),再次讀寫的內(nèi)容將從指針的新位置開始。因此返回結(jié)果為空。1.3文件的讀取和寫入#實(shí)例6.10.1writelines.pywritelines()方法使用f=open("test_file4.txt","w+",encoding="utf-8")ls=["

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論