版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第5章
Python程序設(shè)計(jì)進(jìn)階content重點(diǎn)難點(diǎn)重點(diǎn):1.函數(shù)2.列表3.元組4.字典5.數(shù)據(jù)分析與可視化難點(diǎn):1.函數(shù)2.列表Contents目錄5.1函數(shù)5.2列表5.3元組5.4字典5.5集合5.6文件5.7數(shù)據(jù)分析與可視化5.1函數(shù)函數(shù)函數(shù)是用于實(shí)現(xiàn)特定功能或相關(guān)功能的代碼塊這些代碼塊是構(gòu)建大規(guī)模程序的基本單元通過合理使用函數(shù),開發(fā)者能夠顯著提升代碼的可讀性、可維護(hù)性和可擴(kuò)展性5.1.1函數(shù)的定義和調(diào)用函數(shù)的定義函數(shù)代碼塊以
def
關(guān)鍵詞開頭,后接函數(shù)標(biāo)識符名稱(簡稱函數(shù)名)和圓括號()。函數(shù)可以接收零個(gè)或多個(gè)參數(shù),參數(shù)之間用逗號分隔。參數(shù)是函數(shù)接收外部數(shù)據(jù)的入口。函數(shù)體是函數(shù)的具體實(shí)現(xiàn)代碼,包含要執(zhí)行的語句。函數(shù)內(nèi)容以冒號起始,并且縮進(jìn)。return語句用于返回函數(shù)執(zhí)行結(jié)果。如果沒有return語句,函數(shù)默認(rèn)返回
None。def函數(shù)名(參數(shù)):
函數(shù)體return返回值#可選defprintfun(str):#打印輸入的字符串
print(str)return函數(shù)的調(diào)用printfun("HelloPython!")printfun("再次調(diào)用同一函數(shù)")defprintfun(str):#打印輸入的字符串
print(str)return
MORETHENTEMPLATE調(diào)用程序在函數(shù)處暫停。實(shí)參的值賦值給形參。轉(zhuǎn)到函數(shù)入口處,并執(zhí)行該函數(shù)的函數(shù)體代碼函數(shù)調(diào)用結(jié)束,把函數(shù)的返回值帶到函數(shù)調(diào)用處,程序同時(shí)返回到調(diào)用處繼續(xù)執(zhí)行后續(xù)代碼。函數(shù)的調(diào)用過程defmax(a,b):
ifa>b:returnaelse:returnbMaxnum1=max(1,2)print(Maxnum1)
MORETHENTEMPLATE主程序執(zhí)行到第1行代碼處暫停把實(shí)參1賦值給形參a,實(shí)參2賦值給形參b執(zhí)行函數(shù)max的函數(shù)體,函數(shù)執(zhí)行結(jié)束把執(zhí)行結(jié)果2帶回到主程序調(diào)用處,并賦值給變量bignum1此時(shí)執(zhí)行完主程序的第1行代碼,接下去繼續(xù)執(zhí)行后續(xù)代碼。max函數(shù)的調(diào)用過程defmax(a,b):
ifa>b:returnaelse:returnb#主程序從此開始Maxnum1=max(1,2)print(Maxnum1)1Maxnum1=max(1,2)2print(Maxnum1)3num1=eval(input(“請輸入第1個(gè)數(shù)”))4num2=eval(input(“請輸入第2個(gè)數(shù)”))5Maxnum2=max(num1,num2)6print(Maxnum2)defmax(a,b):ifa>b:returnaelse:returnbdefmax(a,b):ifa>b:returnaelse:returnba=1b=2a=num1b=num2max函數(shù)的調(diào)用過程5.1.2
函數(shù)參數(shù)Python函數(shù)支持多種參數(shù)傳遞方式:位置參數(shù):按照參數(shù)定義的順序傳遞參數(shù)。關(guān)鍵字參數(shù):使用參數(shù)名指定傳遞的值,順序可以任意。默認(rèn)參數(shù):在定義函數(shù)時(shí)為參數(shù)指定默認(rèn)值,調(diào)用時(shí)可以不傳遞該參數(shù)??勺儏?shù):使用*args接收任意數(shù)量的位置參數(shù),使用**kwargs接收任意數(shù)量的關(guān)鍵字參數(shù)。位置參數(shù)默認(rèn)參數(shù)在定義函數(shù)時(shí)指定默認(rèn)值,調(diào)用時(shí)可不傳該參數(shù),直接使用默認(rèn)值。定義與規(guī)則01示例02關(guān)鍵字參數(shù)關(guān)鍵字參數(shù)通過參數(shù)名指定值,調(diào)用時(shí)順序可任意,Python解釋器匹配參數(shù)名與值。定義與規(guī)則01示例中參數(shù)雖順序顛倒,仍正確輸出。示例02默認(rèn)參數(shù)默認(rèn)參數(shù)在定義函數(shù)時(shí)指定默認(rèn)值,調(diào)用時(shí)可不傳該參數(shù),直接使用默認(rèn)值。定義與規(guī)則01示例中printinfo(name="Alice")未傳age,使用默認(rèn)值25。示例02可變參數(shù)*args接受任意數(shù)量位置參數(shù),打包成元組。必須放在普通位置參數(shù)后。*args(可變位置參數(shù))01*args收集了所有傳入的位置參數(shù)(1,2,3,"hello",5),并將其存儲(chǔ)為一個(gè)元組。示例02可變參數(shù)01**kwargs收集了所有傳入的關(guān)鍵字參數(shù),并將其存儲(chǔ)為一個(gè)字典{'name':'Alice','age':25,'city':'Beijing'}示例02**kwargs(可變關(guān)鍵字參數(shù))**kwargs接受任意數(shù)量關(guān)鍵字參數(shù),打包成字典。必須放在*args和普通位置參數(shù)后。5.1.3
函數(shù)返回值函數(shù)返回值函數(shù)用return返回值,無return時(shí)默認(rèn)返回None。定義與規(guī)則01示例025.1.4
匿名函數(shù)匿名函數(shù)定義匿名函數(shù),語法為:lambda參數(shù):表達(dá)式功能有限,主體為單一表達(dá)式。lambda函數(shù)有獨(dú)立命名空間,不能訪問外部變量。定義與規(guī)則01示例025.1.5
變量的作用域變量的作用域變量作用域分全局變量和局部變量。全局變量在函數(shù)外定義,局部變量在函數(shù)內(nèi)定義。定義與規(guī)則01示例中x為全局變量,y為局部變量,外部無法訪問局部變量y。示例025.1.6
常用庫和函數(shù)random庫及常用函數(shù)應(yīng)用場景廣泛應(yīng)用于游戲開發(fā)、數(shù)據(jù)分析、蒙特卡羅模擬、測試用例生成等領(lǐng)域,為需要隨機(jī)性的場景提供支持。導(dǎo)入random庫importrandomfromrandomimport*【例5-12】“讀心術(shù)”游戲。思路導(dǎo)入random庫,生成1到100之間的隨機(jī)數(shù)作為目標(biāo)數(shù)字,用戶輸入猜測,根據(jù)提示調(diào)整猜測范圍,直到猜對或次數(shù)用完。math庫及常用函數(shù)Python的math庫是科學(xué)計(jì)算、數(shù)據(jù)分析和機(jī)器學(xué)習(xí)領(lǐng)域中Python開發(fā)者所依賴的關(guān)鍵工具。math庫及常用函數(shù)math庫及常用函數(shù)【例5-13】計(jì)算三角形面積。思路:使用海倫公式計(jì)算三角形面積。從鍵盤輸入3個(gè)數(shù)作為三角形的邊長,在屏幕上顯示輸出由這3個(gè)邊所構(gòu)成三角形的面積(保留2位小數(shù))。turtle庫及常用函數(shù)turtle庫是Python中的一個(gè)入門級的圖形繪制函數(shù)庫,它提供了一個(gè)虛擬的“海龜”作為畫筆,程序設(shè)計(jì)者通過編寫指令來控制這個(gè)“海龜”在屏幕上移動(dòng),其移動(dòng)軌跡就形成了繪制的圖形。導(dǎo)入庫:importturtlefromturtleimport*設(shè)置畫布設(shè)置畫布大小和位置,width和height為畫布寬高,startx和starty為畫布左上角坐標(biāo),默認(rèn)居中顯示。setup(width,height,startx,starty)設(shè)置畫筆畫布中心為坐標(biāo)原點(diǎn)(0,0),水平方向?yàn)閤軸,垂直方向?yàn)閥軸,形成四象限坐標(biāo)系。01坐標(biāo)系將畫筆移動(dòng)到坐標(biāo)為(x,y)的位置。02goto(x,y)控制畫筆forward(d)使畫筆在當(dāng)前方向上前進(jìn)d像素。backward(d)使畫筆在當(dāng)前方向上后退d像素。circle(r,extend)畫圓或弧,半徑為正(負(fù))表示圓心在畫筆向右(左)側(cè)。setheading(angle)將畫筆朝向設(shè)置為指定的絕對角度angle。left(angle)使畫筆向左旋轉(zhuǎn)指定的角度angle。right(angle)使畫筆向右旋轉(zhuǎn)指定的角度angle。penup()提起畫筆,暫時(shí)不繪畫。pendown()放下畫筆,開始繪畫。
speed(speed)設(shè)置畫筆的移動(dòng)速度,范圍在[0,10]之間。pensize(width)設(shè)置畫筆線條的粗細(xì),數(shù)值越大畫筆越粗。設(shè)置填充顏色,可以是顏色單詞或RGB三元組。fillcolor(color)設(shè)置畫筆的顏色,可以是顏色單詞或RGB三元組。pencolor(color)使用goto定位,forward和left繪制正方形。繪制正方形使用pencolor設(shè)置顏色,forward和right繪制五角星。繪制五角星示例:繪制正方形和五角星與計(jì)算機(jī)系統(tǒng)相關(guān)的庫和函數(shù)用于獲取GPU型號、顯存、負(fù)載等數(shù)據(jù),適用于深度學(xué)習(xí)場景。GPUtil用來獲取系統(tǒng)的硬件信息和使用情況,可以通過它來監(jiān)測CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)等使用情況。Psutil用來獲取CPU信息,包括名稱、品牌、頻率、緩存大小等。cpuinfo用來獲取系統(tǒng)的基礎(chǔ)信息,包括操作系統(tǒng)類型、版本、硬件架構(gòu)等。Platform【例5-16】顯示本機(jī)的系統(tǒng)信息、內(nèi)存信息和CPU信息5.2列表Python除了提供數(shù)字和字符串等數(shù)據(jù)類型,還提供了元組、列表、字典和集合等復(fù)雜類型的數(shù)據(jù)結(jié)構(gòu)。其中,字符串、元組和列表又被稱為序列類型。序列在日常生活中經(jīng)常用到,比如,一個(gè)班級學(xué)生學(xué)號序列,股票價(jià)格的時(shí)間序列等,字符串和元組都是不可修改的數(shù)據(jù)類型,而列表是可修改的數(shù)據(jù)序列。本節(jié)主要介紹列表的相關(guān)知識。在Python中,列表是包含0個(gè)或多個(gè)對象的有序序列。列表中的值稱為元素,列表的長度和內(nèi)容是可變的,元素類型可以不同。5.2.1
創(chuàng)建列表創(chuàng)建列表可以使用“=”直接將列表賦值給變量的方式創(chuàng)建一個(gè)列表,也可以使用list()函數(shù)將序列類型的數(shù)據(jù)轉(zhuǎn)化成列表。列表的元素使用“[]”括起來,元素之間使用逗號分隔。列表中的元素可以是任何類型的對象,如數(shù)字、字符串、列表、元組等。創(chuàng)建列表示例:>>>list1=[1,4,9,16,25]#創(chuàng)建有元素列表>>>list1[1,4,9,16,25]>>>list2=[]#創(chuàng)建空列表>>>list2[]>>>list2=['physics','chemistry',2025,3.14]#列表的內(nèi)容可以改變>>>list2['physics','chemistry',2025,3.14]>>>list3=list('Python')#將一個(gè)字符串轉(zhuǎn)換為列表>>>list3['P','y','t','h','o','n']>>>list4=list(range(2,10,2))>>>list45.2.2
列表的索引和切片列表的索引和切片列表就是一個(gè)可變的、有序的序列。列表中的元素之間存在先后關(guān)系,可以使用索引號進(jìn)行訪問。索引有正向索引和反向索引,在正向索引中,第1個(gè)元素的索引號為0,第2個(gè)元素的索引號為1,第3個(gè)元素的索引號為2,以此類推,第n個(gè)元素的索引號為n-1;在反向索引中,最后一個(gè)元素的索引號為-1,倒數(shù)第二個(gè)元素的索引號為-2,以此類推。序列的正向索引及反向索引結(jié)構(gòu)如圖5-6所示。1.列表的索引示例:>>>list1[0]#索引操作將返回條目1>>>list1[-1]25>>>list3[-1]='m'#修改列表中的最后一個(gè)元素>>>list3['P','y','t','h','o','m']如果需要將列表中的元素依次輸出,可以使用序列的遍歷格式:for<變量名>in<序列名>:
<代碼塊>1.列表的索引2.列表的切片使用切片可以截取列表的元素得到一個(gè)新列表,也可以使用切片實(shí)現(xiàn)修改和刪除列表中的部分元素,還可以用來為列表對象添加元素。切片操作符是“[]”,其基本語法為:
list[start:end:step]start是切片的開始位置,包含在切片中。如果省略,默認(rèn)為0,表示從列表開頭開始。end是切片的結(jié)束位置,不包含在切片中。如果省略,默認(rèn)為-1,表示切片到列表結(jié)尾。step是切片的步長,為整數(shù)值,默認(rèn)為1。當(dāng)step>0時(shí),表示正向切片,即從左向右選取元素,此時(shí)要求start在end的左側(cè),否則將得到一個(gè)空序列;當(dāng)step<0時(shí),則表示反向切片,即從右向左選取元素,此時(shí)要求start在end的右側(cè),否則將得到一個(gè)空序列。2.列表的切片通過指定start和end索引,可以獲取列表中從start到end(不包括end)之間的元素,形成一個(gè)新的子列表。例如:>>>numbers=[0,1,2,3,4,5,6,7,8,9]#創(chuàng)建列表>>>numbers[0,1,2,3,4,5,6,7,8,9]>>>list_new=numbers[2:6]#省略step參數(shù),默認(rèn)為1,返回'左閉右開'區(qū)間內(nèi)的元素>>>list_new[2,3,4,5]>>>numbers[:5]#省略start參數(shù),切片將從列表開頭開始[0,1,2,3,4]>>>numbers[5:]#省略end參數(shù),切片將從start索引開始,一直到列表結(jié)尾[5,6,7,8,9]2.列表的切片>>>numbers[::2]#正向切片,每隔一個(gè)元素取一個(gè)值,獲得偶數(shù)位置的元素[0,2,4,6,8]>>>numbers[::-1]#反向切片[9,8,7,6,5,4,3,2,1,0]>>>numbers[-3:]#將返回最后三個(gè)元素[7,8,9]>>>numbers[7:2:-1]#從索引7開始向索引2的方向以步長-1進(jìn)行切片[7,6,5,4,3]>>>numbers[2:5]=[20,30,40]#修改列表的部分元素>>>numbers[0,1,20,30,40,5,6,7,8,9]>>>delnumbers[2:5]#刪除列表的部分元素>>>numbers[0,1,5,6,7,8,9]5.2.3
列表的基本操作列表的基本操作創(chuàng)建列表后,對于列表對象可以直接調(diào)用內(nèi)置方法實(shí)現(xiàn)各種操作如:添加、刪除元素,搜索列表,列表排序等。列表的基本操作——添加元素列表中添加元素有三個(gè)方法:append()extend()insert()這3個(gè)方法都屬于原地操作方法,即調(diào)用方法后,原列表的內(nèi)容會(huì)發(fā)生變化,但不會(huì)創(chuàng)建新的列表。列表的基本操作——添加元素append()方法——添加一個(gè)元素語法如下:list.append(element)參數(shù):element:要添加到列表末尾的元素,元素可以是任何數(shù)據(jù)類型,包括數(shù)字、字符串、列表(此時(shí)添加的是整個(gè)列表對象作為單個(gè)元素)、字典等。append()方法用于在列表的末尾添加一個(gè)元素。append()只能添加一個(gè)元素,不能一次性添加多個(gè)元素。添加完成后,列表的長度增加1。列表的基本操作——添加元素extend()方法——添加多個(gè)元素語法如下:list.extend(iterable)參數(shù):iterable:一個(gè)可迭代對象,其元素將被添加到列表中,這里的對象可以是字符串、列表、元組、字典。extend()方法用于將一個(gè)迭代對象中的所有元素添加到另一個(gè)列表的末尾。與append()不同,extend()接受一個(gè)可迭代對象(如列表、元組等),并將其元素逐一添加到原列表中。列表的基本操作——添加元素insert()方法——插入元素語法如下:list.insert(index,element)參數(shù):index:插入元素的索引位置。element:要插入的元素。insert()方法用于在列表的指定位置插入一個(gè)元素。這個(gè)方法接受兩個(gè)參數(shù):一個(gè)是插入位置的索引,另一個(gè)是要插入的元素。索引從0開始計(jì)數(shù),如果指定的索引超出了列表的當(dāng)前范圍,元素將被添加到列表的末尾。由于insert()方法需要在指定位置插入元素,并可能需要移動(dòng)列表中的其他元素來為新元素騰出空間,因此其性能可能不如append()或extend()。特別是在列表較長且插入位置靠近開頭時(shí),性能下降更為明顯。列表的基本操作——?jiǎng)h除元素刪除列表元素有三個(gè)方法:remove()pop()clear()這3個(gè)方法也屬于原地操作方法,即調(diào)用方法后,不會(huì)創(chuàng)建新的列表。列表的基本操作——?jiǎng)h除元素remove()方法——?jiǎng)h除指定內(nèi)容的元素語法如下:list.remove(x)參數(shù):x:要移除的元素。remove()方法用于移除列表中首次出現(xiàn)的指定元素。如果不存在該元素,會(huì)引發(fā)一個(gè)ValueError異常。當(dāng)有多個(gè)相同的元素需要?jiǎng)h除時(shí),可以使用循環(huán)結(jié)合remove()方法來逐個(gè)刪除。列表的基本操作——?jiǎng)h除元素pop()方法——?jiǎng)h除指定位置的元素語法如下:list.pop([index])參數(shù):index(可選):要?jiǎng)h除元素的索引。如果不指定,默認(rèn)刪除最后一個(gè)元素。pop()用于刪除并返回列表中指定位置的元素。如果不指定位置,默認(rèn)刪除并返回最后一個(gè)元素。每調(diào)用一次pop(),列表的長度就會(huì)減少1。該方法會(huì)返回被刪除的元素。如果指定的索引超出列表范圍,會(huì)拋出IndexError異常。列表的基本操作——?jiǎng)h除元素clear()方法——清空列表語法如下:list.clear()clear()方法用于移除列表中的所有元素,使其變?yōu)榭樟斜怼G蹇蘸蟮牧斜黹L度為0。clear()方法可用于清空列表、字典或集合中的所有元素。對于列表來說,就是移除列表中的所有元素,使其變?yōu)榭樟斜恚粚τ谧值鋪碚f,就是移除字典中的所有鍵值對,使其變?yōu)榭兆值洌粚τ诩蟻碚f,就是移除集合中的所有元素,使其變?yōu)榭占?。列表的基本操作——?jiǎng)h除元素clear()方法——清空列表示例:>>>numbers=[0,1,2,3,4]>>>numbers.pop(2)>>>numbers>>>dellist1[2]#刪除list1中索引號為2的元素>>>list1[1,4,16,25]>>>dellist1#刪除列表list4>>>list1NameError:name'list4'isnotdefined#訪問已刪除的列表,出現(xiàn)異常列表的基本操作——查詢元素列表的基本操作——列表排序列表程序舉例【例5-18】分類顯示社會(huì)主義核心價(jià)值觀的12項(xiàng)內(nèi)容,檢索輸入的內(nèi)容是否屬于社會(huì)主義核心價(jià)值觀的內(nèi)容。5.3元組5.3.1
創(chuàng)建元組創(chuàng)建元組Python的元組與列表類似,不同之處在于元組的元素不能修改。元組使用小括號(),列表使用方括號[]??梢允褂谩?”直接將列表賦值給變量的方式創(chuàng)建一個(gè)元組,也可以通過tuple()函數(shù)將其他序列類型的數(shù)據(jù)轉(zhuǎn)化成列表。創(chuàng)建元組>>>t1=(12345,'hello!',3.14)#元組中的元素可以使用不同的數(shù)據(jù)類型>>>t1(12345,'hello!',3.14)>>>t2=([1,2,3],[3,2,1])#包含可變對象的元組>>>t2([1,2,3],[3,2,1])>>>t3=(0,)#只有一個(gè)元素的元組,逗號不能省略>>>t3(0,)>>>t4=1,2,3#沒有歧義的情況下,圓括號可以省略>>>t4(1,2,3)>>>a=[2,4,6,8]>>>t5=tuple(a)#將列表轉(zhuǎn)換為元組>>>print(t5)(2,4,6,8)>>>t6=tuple(range(10))#將range對象轉(zhuǎn)換為元組>>>print(t6)(0,1,2,3,4,5,6,7,8,9)>>>t7=t1+t4#元組的連接>>>t7(12345,'hello!',3.14,1,2,3)>>>t8=t4*3#元組的復(fù)制>>>t8(1,2,3,1,2,3,1,2,3)5.3.2
元組的基本操作元組的基本操作——訪問元組可以使用索引、切片或遍歷的方式來訪問元組中的值。【例5-19】使用索引和切片訪問元組。以上實(shí)例輸出結(jié)果:元組的基本操作——訪問元組元組中第1個(gè)元素的索引是0,第2個(gè)元素的索引是1,第3個(gè)元素的索引是2,以此類推,第n個(gè)元素的索引是n-1。此外,也可以使用反向索引來表示元素,使用反向索引時(shí),最后一個(gè)元素是-1,倒數(shù)第二個(gè)是-2,以此類推。元組a的正向索引及反向索引結(jié)構(gòu)如圖所示。元組的基本操作——?jiǎng)h除元組不能使用remove()、pop()和clear()刪除元組的元素,也不能使用insert()、append()和extend()方法添加元組的元素,但可以使用del語句來刪除整個(gè)元組?!纠?-20】使用del語句刪除元組。以上實(shí)例元組被刪除后,輸出變量會(huì)有異常信息,輸出如下所示:元組的基本操作——元組的常用函數(shù)5.3.3
元組程序舉例元組程序舉例【例5-21】學(xué)生成績管理。5.4字典5.4.1
創(chuàng)建字典創(chuàng)建字典在Python中,字典(dictionary)是一種非常重要的數(shù)據(jù)結(jié)構(gòu),它提供了一種通過鍵(key)來存儲(chǔ)和訪問值(value)的方式。與列表(list)和元組(tuple)等序列類型不同,字典是無序的集合,其元素是由鍵值對組成的。
字典中的每個(gè)元素都是一個(gè)鍵值對(key-valuepair),其中鍵是唯一的,且必須是不可變的(如字符串、數(shù)字或元組),而值可以是任意類型的對象。創(chuàng)建字典5.4.2
字典的基本操作字典的基本操作——訪問字典中的值字典的基本操作——增加字典元素字典元素的增加可以使用“字典變量[鍵]=值”格式。如果鍵不存在于字典中,可以通過賦值操作來添加新的鍵值對,如果鍵已經(jīng)存在,則修改該鍵對應(yīng)的值。字典的基本操作——修改字典元素使用“字典變量[鍵]=值”格式修改已經(jīng)存在的鍵所對應(yīng)的值。也可使用update()方法批量更新字典中的元素。字典的基本操作——?jiǎng)h除字典元素可以使用del語句或pop()方法來刪除字典中的元素。字典的基本操作——?jiǎng)h除字典元素也可以使用clear()方法刪除字典中的所有鍵值對,使用clear()方法后,原字典將變成一個(gè)空字典。使用del可以刪除字典中的某個(gè)元素,也可刪除一個(gè)字典,但要注意的是,使用del刪除字典后,字典將不再存在。字典的基本操作——遍歷字典表5-14字典的常見方法【例5-22】統(tǒng)計(jì)短文中單詞出現(xiàn)的頻率。5.4.3
字典程序舉例字典程序舉例【例5-23】創(chuàng)建一個(gè)包含哪吒、敖丙、申公豹、太乙真人等神話人物信息的字典。5.5集合集合(set)是Python中的一種基本數(shù)據(jù)結(jié)構(gòu),用于存儲(chǔ)一組不重復(fù)的元素。集合是一種無序的、可變的數(shù)據(jù)類型,這意味著集合中的元素沒有特定的順序。集合中的元素可以是整數(shù)、浮點(diǎn)數(shù)、字符串等基本數(shù)據(jù)類型,也可以是其他集合、元組等可哈希的數(shù)據(jù)類型。集合適用于需要對元素進(jìn)行去重、判斷元素是否存在、進(jìn)行集合運(yùn)算等場景。集合的特征
唯一性:集合中的元素是唯一的,不允許有重復(fù)的元素。
無序性:集合中的元素沒有特定的順序,因此無法通過索引訪問元素。
可變性:集合是可變的,可以添加、刪除元素。
集合操作:集合支持多種集合操作,如并集、交集、差集等。5.5.1
創(chuàng)建集合創(chuàng)建集合可以直接使用大括號來創(chuàng)建一個(gè)集合,但需要注意,如果創(chuàng)建的是空集合,必須使用set()而不是{},因?yàn)閧}會(huì)創(chuàng)建一個(gè)空字典。也可以使用set()函數(shù)可以將任何可迭代對象(如列表、元組、字符串等)轉(zhuǎn)換為集合。5.5.2
集合的基本操作集合的基本操作——添加元素可以使用add()方法向集合中添加一個(gè)元素,如果該元素已存在則忽略,不存在則添加。集合的基本操作——?jiǎng)h除元素刪除集合元素有4個(gè)方法:remove()、discard()、pop()和clear()。remove()和discard()方法都可以從集合中移除一個(gè)指定的元素,不同的是,如果指定元素不存在,remove()方法會(huì)引發(fā)錯(cuò)誤,而discard()方法則忽略該操作。pop()方法用于從集合中隨機(jī)移除一個(gè)元素,并返回該元素,如果集合為空,會(huì)引發(fā)錯(cuò)誤。clear()方法用來清空集合。集合的基本操作——集合運(yùn)算5.5.3
集合程序舉例集合程序舉例【例5-24】數(shù)據(jù)清洗。5.6文件文件文件是計(jì)算機(jī)中用于存儲(chǔ)數(shù)據(jù)的一種結(jié)構(gòu),可以是文本文件、二進(jìn)制文件、圖片、音頻、視頻等多種類型。在Python中,文件操作是指通過編程語言對文件進(jìn)行創(chuàng)建、讀取、寫入、刪除等一系列動(dòng)作。5.6.1
文件的打開和關(guān)閉文件的打開和關(guān)閉
在Python中,使用內(nèi)置的open()函數(shù)來打開文件,使用close()方法關(guān)閉文件。open()函數(shù)返回一個(gè)文件對象,該對象提供了對文件進(jìn)行讀寫操作的方法。文件的打開和關(guān)閉
為了簡化文件關(guān)閉的操作,Python提供了with語句。使用with語句打開文件時(shí),文件會(huì)在代碼塊執(zhí)行完畢后自動(dòng)關(guān)閉。5.6.2
文件的基本操作文件的基本操作——文件的寫入(1)寫入字符串?dāng)?shù)據(jù)使用write()方法可以將字符串?dāng)?shù)據(jù)寫入文件。如果文件以寫入模式('w')或追加模式('a')打開,則可以直接寫入數(shù)據(jù)。文件的基本操作——文件的寫入(2)寫入字節(jié)數(shù)據(jù)對于二進(jìn)制文件,可以使用write()方法寫入字節(jié)數(shù)據(jù)。此時(shí),需要以二進(jìn)制模式('b')打開文件。文件的基本操作——文件的寫入(3)使用writelines()方法寫入多行數(shù)據(jù)writelines()方法可以將一個(gè)列表(或其他可迭代對象)中的多個(gè)字符串元素寫入文件。每個(gè)元素將直接寫入文件,不會(huì)自動(dòng)添加換行符。文件的基本操作——文件的讀取(1)讀取整個(gè)文件使用read()方法可以讀取文件的全部內(nèi)容,并將其作為一個(gè)字符串返回。文件的基本操作——文件的讀?。?)逐行讀取文件對于較大的文件,逐行讀取可能更為高效。可以使用readline()方法讀取文件中的一行內(nèi)容,或使用readlines()方法將文件的所有行作為一個(gè)列表返回。文件的基本操作——文件的讀?。?)使用for循環(huán)逐行讀取Python的文件對象支持迭代器接口,因此可以直接使用for循環(huán)逐行讀取文件。文件的基本操作——文件的刪除與重命名(1)刪除文件使用os.remove()函數(shù)可以刪除指定的文件。如果文件不存在,則會(huì)拋出FileNotFoundError異常。文件的基本操作——文件的刪除與重命名(2)重命名文件使用os.rename()函數(shù)可以重命名指定的文件。5.6.3
文件操作中的異常處理字典程序舉例在進(jìn)行文件操作時(shí),可能會(huì)遇到各種異常情況,如文件不存在、權(quán)限不足等。因此,建議使用異常處理機(jī)制來捕獲并處理這些異常。5.7數(shù)據(jù)分析與可視化數(shù)據(jù)分析是數(shù)據(jù)可視化的理論與技術(shù)基礎(chǔ),涵蓋數(shù)據(jù)的采集
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年外貿(mào)收款合同
- 2026年綠色采購合同
- 2025年人工智能教育輔助平臺開發(fā)項(xiàng)目可行性研究報(bào)告
- 2025年智慧社區(qū)管理平臺建設(shè)項(xiàng)目可行性研究報(bào)告
- 2025年新能源技術(shù)應(yīng)用與推廣項(xiàng)目可行性研究報(bào)告
- 2025年電動(dòng)交通工具基礎(chǔ)設(shè)施建設(shè)可行性研究報(bào)告
- 2025年智能供應(yīng)鏈優(yōu)化解決方案可行性研究報(bào)告
- 約個(gè)人投資協(xié)議書
- 終止聘用合同范本
- 外交部國際事務(wù)崗位人員招聘標(biāo)準(zhǔn)及考核要點(diǎn)
- 2025年農(nóng)業(yè)農(nóng)村部耕地質(zhì)量和農(nóng)田工程監(jiān)督保護(hù)中心度面向社會(huì)公開招聘工作人員12人備考題庫有答案詳解
- 2025年看守所民警述職報(bào)告
- 景區(qū)接待員工培訓(xùn)課件
- 客源國概況日本
- 學(xué)位授予點(diǎn)評估匯報(bào)
- 《Stata數(shù)據(jù)統(tǒng)計(jì)分析教程》
- 2024-2025學(xué)年廣州市越秀區(qū)八年級上學(xué)期期末語文試卷(含答案)
- 寵物診療治療試卷2025真題
- 媒體市場競爭力分析-洞察及研究
- 口腔科口腔潰瘍患者漱口液選擇建議
- 精神科抑郁癥心理干預(yù)培訓(xùn)方案
評論
0/150
提交評論