《Python程序設(shè)計(jì)基礎(chǔ)》-課件 李麗 項(xiàng)目三 表達(dá)式與運(yùn)算符;項(xiàng)目四 組合數(shù)據(jù)類型項(xiàng)目五 Python 流程控制_第1頁(yè)
《Python程序設(shè)計(jì)基礎(chǔ)》-課件 李麗 項(xiàng)目三 表達(dá)式與運(yùn)算符;項(xiàng)目四 組合數(shù)據(jù)類型項(xiàng)目五 Python 流程控制_第2頁(yè)
《Python程序設(shè)計(jì)基礎(chǔ)》-課件 李麗 項(xiàng)目三 表達(dá)式與運(yùn)算符;項(xiàng)目四 組合數(shù)據(jù)類型項(xiàng)目五 Python 流程控制_第3頁(yè)
《Python程序設(shè)計(jì)基礎(chǔ)》-課件 李麗 項(xiàng)目三 表達(dá)式與運(yùn)算符;項(xiàng)目四 組合數(shù)據(jù)類型項(xiàng)目五 Python 流程控制_第4頁(yè)
《Python程序設(shè)計(jì)基礎(chǔ)》-課件 李麗 項(xiàng)目三 表達(dá)式與運(yùn)算符;項(xiàng)目四 組合數(shù)據(jù)類型項(xiàng)目五 Python 流程控制_第5頁(yè)
已閱讀5頁(yè),還剩116頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

任務(wù)運(yùn)算符綜合應(yīng)用951.了解表達(dá)式的概念。2.熟悉各種運(yùn)算符的概念、作用及基本使用方法。3.能通過相應(yīng)的運(yùn)算符實(shí)現(xiàn)各種運(yùn)算。任務(wù)目標(biāo)96一、表達(dá)式表達(dá)式是可以計(jì)算的代碼片段。表達(dá)式由操作數(shù)、運(yùn)算符和小括號(hào)按一定的規(guī)則組成。表達(dá)式通過運(yùn)算后產(chǎn)生運(yùn)算結(jié)果,返回結(jié)果對(duì)象。運(yùn)算結(jié)果對(duì)象的類型由操作數(shù)和運(yùn)算符共同決定。運(yùn)算符表明對(duì)操作數(shù)進(jìn)行什么樣的運(yùn)算。表達(dá)式既可以非常簡(jiǎn)單,又可以非常復(fù)雜。當(dāng)表達(dá)式包含多個(gè)運(yùn)算符時(shí),運(yùn)算符的優(yōu)先級(jí)控制各個(gè)運(yùn)算符的計(jì)算順序。相關(guān)知識(shí)97二、算術(shù)運(yùn)算符Python提供了豐富的算術(shù)運(yùn)算符,用于進(jìn)行包含四則運(yùn)算的各種算術(shù)運(yùn)算。98Python中的算術(shù)運(yùn)算符99三、賦值運(yùn)算符賦值運(yùn)算符用來把右側(cè)的值傳遞給左側(cè)的變量(或者常量)??梢灾苯訉⒂覀?cè)的值傳遞給左側(cè)的變量,也可以進(jìn)行某些運(yùn)算后再傳遞給左側(cè)的變量,如加減乘除、函數(shù)調(diào)用、邏輯運(yùn)算等。等號(hào)“=”是Python中最常見、最基本的賦值運(yùn)算符,用來將一個(gè)表達(dá)式的值賦給另一個(gè)變量。100在Python中,變量是用來存儲(chǔ)數(shù)據(jù)的,但實(shí)際上,變量并不直接存儲(chǔ)數(shù)據(jù)本身,而是存儲(chǔ)對(duì)數(shù)據(jù)對(duì)象的引用。這意味著變量實(shí)際上指向內(nèi)存中存儲(chǔ)的數(shù)據(jù)對(duì)象的位置,而不是存儲(chǔ)數(shù)據(jù)本身。當(dāng)使用賦值語句(如x=10)時(shí),實(shí)際上是在創(chuàng)建一個(gè)名為x的變量,并將其指向一個(gè)存儲(chǔ)值為10的整數(shù)對(duì)象的內(nèi)存位置,這個(gè)過程稱為對(duì)象引用。變量x是對(duì)該整數(shù)對(duì)象的引用,因此可以通過x來訪問和操作這個(gè)整數(shù)對(duì)象。Python中的一切都是對(duì)象,因此,當(dāng)創(chuàng)建一個(gè)變量并將其值賦為函數(shù)、類實(shí)例等時(shí),實(shí)際上是在為這個(gè)變量創(chuàng)建一個(gè)指向相應(yīng)對(duì)象的引用。101等號(hào)“=”可以與其他運(yùn)算符(包括算數(shù)運(yùn)算符、位運(yùn)算符和邏輯運(yùn)算符)相結(jié)合,拓展成功能更加強(qiáng)大的賦值運(yùn)算符。拓展后的賦值運(yùn)算符見下表。Python中的算術(shù)運(yùn)算符102Python中的算術(shù)運(yùn)算符通常情況下,只要能使用拓展后的賦值運(yùn)算符,都推薦使用這類賦值運(yùn)算符。注意:這類賦值運(yùn)算符只能針對(duì)已經(jīng)存在的變量賦值,因?yàn)橘x值過程中需要變量引用的對(duì)象參與運(yùn)算,如果變量沒有提前定義,它的值就是未知的,無法參與運(yùn)算。103四、位運(yùn)算符Python位運(yùn)算按照數(shù)據(jù)在內(nèi)存中的二進(jìn)制位進(jìn)行操作,它一般用于底層開發(fā)(如算法設(shè)計(jì)、驅(qū)動(dòng)、圖像處理等)。Python位運(yùn)算符只能用來操作整數(shù)型數(shù)據(jù),它按照整數(shù)在內(nèi)存中的二進(jìn)制形式進(jìn)行計(jì)算。Python支持的位運(yùn)算符見下表。這里定義兩個(gè)變量:變量a為60,變量b為13,它們的二進(jìn)制格式如下。a=00111100b=00001101104Python支持的位運(yùn)算符105五、比較運(yùn)算符比較運(yùn)算符也稱關(guān)系運(yùn)算符,用于對(duì)常量、變量或表達(dá)式的結(jié)果進(jìn)行比較,返回值為True(真)或False(假),用于程序流程控制。Python支持的比較運(yùn)算符見下表。Python支持的比較運(yùn)算符106六、邏輯運(yùn)算符邏輯運(yùn)算符用來對(duì)多個(gè)表達(dá)式進(jìn)行計(jì)算,表示“且”“或”“非”等。Python中的邏輯運(yùn)算符見下表。Python中的邏輯運(yùn)算符107Python按照下面的規(guī)則執(zhí)行and運(yùn)算?!袢绻筮叡磉_(dá)式的值為False,那么就不用計(jì)算右邊表達(dá)式的值了?!袢绻筮叡磉_(dá)式的值為True,那么最終值是不能確定的,and運(yùn)算會(huì)繼續(xù)計(jì)算右邊表達(dá)式的值,并將右邊表達(dá)式的值作為最終結(jié)果。對(duì)于or運(yùn)算符,情況是類似的,兩邊的值都為False時(shí),最終結(jié)果才為False,只要其中一個(gè)值為True,那么最終結(jié)果就為True。Python按照下面的規(guī)則執(zhí)行or運(yùn)算。●如果左邊表達(dá)式的值為True,那么就不用計(jì)算右邊表達(dá)式的值了?!袢绻筮叡磉_(dá)式的值為False,那么最終值是不能確定的,or運(yùn)算會(huì)繼續(xù)計(jì)算右邊表達(dá)式的值,并將右邊表達(dá)式的值作為最終結(jié)果。108七、三目運(yùn)算符三目運(yùn)算符又稱條件運(yùn)算符,它是唯一一個(gè)有三個(gè)操作數(shù)的運(yùn)算符,所以又稱三元運(yùn)算符。在其他編程語言(如C語言)中,三目運(yùn)算符的格式如下。b?x:y其工作原理是先計(jì)算條件b,然后進(jìn)行判斷。如果b的值為True,計(jì)算x的值,運(yùn)算結(jié)果為x的值;否則計(jì)算y的值,運(yùn)算結(jié)果為y的值。一個(gè)條件表達(dá)式絕不會(huì)既計(jì)算x的值,又計(jì)算y的值。但是,Python中并未引入其他編程語言中的三目運(yùn)算符的寫法,而是使用已有的if...else語句來實(shí)現(xiàn)相同的功能。109使用if...else語句實(shí)現(xiàn)三目運(yùn)算符(條件運(yùn)算符)的格式如下。exp1ifconditionelseexp2其中,condition是判斷條件,exp1和exp2是兩個(gè)表達(dá)式。如果判斷條件成立(結(jié)果為True),就執(zhí)行exp1,并把exp1的結(jié)果作為整個(gè)表達(dá)式的結(jié)果;如果判斷條件不成立(結(jié)果為False),就執(zhí)行exp2,并把exp2的結(jié)果作為整個(gè)表達(dá)式的結(jié)果。110另外,Python中的三目運(yùn)算符支持嵌套,由此構(gòu)成更加復(fù)雜的表達(dá)式。在嵌套時(shí),需要注意if和else的配對(duì)。三目運(yùn)算符嵌套的格式如下。aifa>belsecifc>delsed其工作原理是當(dāng)a>b時(shí),以a的結(jié)果作為輸出,否則對(duì)c和d的大小進(jìn)行比較,當(dāng)c>d時(shí),以c的結(jié)果作為輸出,否則以d的結(jié)果作為輸出。任務(wù)1序列的使用01任務(wù)2列表的使用02任務(wù)3元組的使用03111任務(wù)4字典的使用04任務(wù)5集合的使用05任務(wù)1序列的使用1121.熟悉序列的概念。2.掌握序列的基本使用方法。3.掌握檢查元素是否包含在序列中的方法。4.了解和序列相關(guān)的內(nèi)置函數(shù)。任務(wù)目標(biāo)113一、序列索引在序列中,每個(gè)元素都有屬于自己的編號(hào)(索引)。例如,一個(gè)含有n個(gè)元素的序列從起始元素開始,索引值從0開始遞增至n-1,如圖所示。相關(guān)知識(shí)114序列索引方法1除此之外,Python還支持索引值是負(fù)數(shù),此類索引是從右向左計(jì)數(shù)的,從最后一個(gè)元素開始計(jì)數(shù),從索引值-1開始,如圖所示。無論是采用正索引值,還是負(fù)索引值,都可以訪問序列中的任何元素。115序列索引方法2二、序列切片切片操作是訪問序列中元素的另一種方法,它可以訪問一定范圍內(nèi)的元素,通過切片操作,可以生成一個(gè)新的序列。序列實(shí)現(xiàn)切片操作的語法格式如下。sname[start:end:step]116各參數(shù)的含義如下?!駍name:序列的名稱?!駍tart:切片開始位置對(duì)應(yīng)的索引值(包括該位置),此參數(shù)也可以不指定,會(huì)默認(rèn)為0,也就是從序列的開頭進(jìn)行切片?!馿nd:切片結(jié)束位置對(duì)應(yīng)的索引值(不包括該位置),如果不指定,則默認(rèn)為序列的長(zhǎng)度?!駍tep:在切片過程中,隔幾個(gè)存儲(chǔ)位置(包含當(dāng)前位置)取一次元素,也就是說,如果step的值大于1,則在進(jìn)行切片取序列元素時(shí),會(huì)“跳躍式”地取元素,如果省略設(shè)置step的值,則最后一個(gè)冒號(hào)就可以省略。117三、序列相加、相乘序列的相加、相乘與前面字符串的相加、相乘的調(diào)用格式和作用相同,故不在此詳細(xì)說明。序列相加、相乘示例如下。str1="Python"print(str1+"編程語言")print(str1*3)程序運(yùn)行結(jié)果如下。Python編程語言PythonPythonPython118四、檢查元素是否包含在序列中在Python中,可以使用in關(guān)鍵字檢查某元素是否為序列的成員,其語法格式如下。valueinsequence其中,value表示要檢查的元素,sequence表示指定的序列。和in關(guān)鍵字用法相同但功能相反的是notin關(guān)鍵字,它用來檢查某個(gè)元素是否不包含在指定的序列中。119五、和序列相關(guān)的內(nèi)置函數(shù)除了上面的用法,Python還提供了一些和序列相關(guān)的內(nèi)置函數(shù),可用于實(shí)現(xiàn)與序列相關(guān)的一些常用操作。120和序列相關(guān)的內(nèi)置函數(shù)任務(wù)2列表的使用1211.熟悉列表的概念。2.掌握列表的創(chuàng)建和刪除方法。3.掌握對(duì)列表中元素的操作方法。4.能進(jìn)行列表的整體操作。5.能進(jìn)行列表中元素的基本操作。任務(wù)目標(biāo)122列表是一組有序項(xiàng)目的數(shù)據(jù)結(jié)構(gòu)。在創(chuàng)建一個(gè)列表后,用戶可以訪問、修改、添加或刪除列表中的項(xiàng)目,即列表是可變的數(shù)據(jù)類型。在Python中沒有數(shù)組,而是使用功能更強(qiáng)大的列表代替。列表將所有元素都放在一對(duì)中括號(hào)中,相鄰元素之間用逗號(hào)分隔。列表的格式如下。[element1,element2,element3,…,elementn]其中,element1~elementn表示列表中的元素,個(gè)數(shù)沒有限制,只要是Python支持的數(shù)據(jù)類型都可以,因此,列表可以存儲(chǔ)整數(shù)、小數(shù)、字符串、列表、元組等任何類型的數(shù)據(jù),并且同一個(gè)列表中元素的類型也可以不同。相關(guān)知識(shí)123124一、列表的創(chuàng)建在Python中,創(chuàng)建列表的方法可以分為使用中括號(hào)“[]”直接創(chuàng)建列表和使用list函數(shù)創(chuàng)建列表兩種。1.使用中括號(hào)“[]”直接創(chuàng)建列表使用中括號(hào)“[]”創(chuàng)建列表后,一般使用等號(hào)“=”將它賦給某個(gè)變量,具體格式如下。listname=[element1,element2,element3,…,elementn]其中,listname表示變量名,element1~elementn表示列表元素。另外,使用此方式創(chuàng)建列表時(shí),列表中元素可以有多個(gè),也可以一個(gè)都沒有。2.使用list函數(shù)創(chuàng)建列表除了使用中括號(hào)“[]”創(chuàng)建列表,Python還提供了一個(gè)內(nèi)置的函數(shù)list,使用它可以將可迭代對(duì)象(字符串、元組、字典、集合等)轉(zhuǎn)換為列表類型。125126二、列表的刪除對(duì)于已經(jīng)創(chuàng)建的列表,如果不再需要使用,可以使用del關(guān)鍵字將其刪除。然而,在實(shí)際的開發(fā)中,通常不使用del來手動(dòng)刪除列表。這是因?yàn)镻ython具備自帶的垃圾回收機(jī)制,它會(huì)自動(dòng)檢測(cè)和銷毀不再被引用的對(duì)象,包括列表。因此,即使開發(fā)者不手動(dòng)使用del刪除列表,Python也會(huì)在適當(dāng)?shù)臅r(shí)候自動(dòng)回收這些無用的列表,從而釋放內(nèi)存空間,確保程序運(yùn)行的高效性和穩(wěn)定性。del關(guān)鍵字的語法格式如下。dellistname其中,listname表示要?jiǎng)h除列表的名稱。127三、列表中元素的訪問列表是Python序列的一種,可以使用索引訪問列表中的某個(gè)元素(得到的是一個(gè)元素的值),也可以使用切片訪問列表中的一組元素(得到的是一個(gè)新的子列表)。使用索引訪問列表元素的格式如下。listname[i]其中,listname表示列表的名稱,i表示索引值。列表的索引可以是正數(shù),也可以是負(fù)數(shù)。索引訪問示意圖如圖所示。128索引訪問示意圖使用切片訪問列表元素的格式如下。listname[start:end:step]步長(zhǎng)為1的切片訪問示意圖如圖所示。129步長(zhǎng)為1的切片訪問示意圖130四、向列表中添加元素1.使用append方法添加元素append方法用于在列表的末尾追加元素,其語法格式如下。listname.append(obj)其中,listname表示要添加元素的列表;obj表示要添加到列表末尾的數(shù)據(jù),它可以是單個(gè)元素,也可以是列表、元組等,但不能是單個(gè)的數(shù)字,因?yàn)閕nt類型的對(duì)象不可迭代,下同。注意:當(dāng)給append方法傳遞列表或者元組時(shí),該方法會(huì)將它們視為一個(gè)整體,作為一個(gè)元素添加到列表中,從而形成包含列表和元組的新列表。2.使用extend方法添加元素extend方法和append方法的不同之處在于,extend方法不會(huì)把列表或元組視為一個(gè)整體,而是把它們包含的元素逐個(gè)添加到列表中。extend方法的語法格式如下。listname.extend(obj)其中,listname表示要添加元素的列表;obj表示要添加到列表末尾的數(shù)據(jù),需要是一個(gè)可迭代對(duì)象,它可以是單個(gè)元素,也可以是列表、元組等,但不能是單個(gè)的數(shù)字。1313.使用insert方法添加元素append方法和extend方法只能在列表末尾添加元素,如果希望在列表中間某個(gè)位置添加元素,可以使用insert方法。insert方法的語法格式如下。listname.insert(index,obj)其中,index表示指定位置的索引值。insert方法會(huì)將obj添加到listname列表第index個(gè)元素的位置。當(dāng)添加列表或者元組時(shí),insert方法會(huì)將它們視為一個(gè)整體,作為一個(gè)元素添加到列表中,這一點(diǎn)和append方法是一樣的。132133五、從列表中刪除元素從Python列表中刪除元素一共有四種方法,按照不同的使用場(chǎng)景可以分為以下三類?!窀鶕?jù)目標(biāo)元素所在位置的索引進(jìn)行刪除,可以使用del關(guān)鍵字或者pop方法?!窀鶕?jù)元素本身的值進(jìn)行刪除,可以使用列表(list類型)提供的remove方法?!駥⒘斜碇兴性囟紕h除,可以使用列表(list類型)提供的clear方法。1.del關(guān)鍵字del是Python中的關(guān)鍵字,專門用來執(zhí)行刪除操作,它不僅可以刪除整個(gè)列表,還可以刪除列表中的某些元素。因?yàn)榍懊嬉呀?jīng)詳細(xì)介紹過如何刪除列表變量,所以這里只講解如何刪除列表元素。del可以刪除列表中的單個(gè)元素(通過索引值),其格式如下。dellistname[index]其中,listname表示列表的名稱,index表示元素的索引值。134del也可以刪除中間一段連續(xù)的元素,其格式如下。dellistname[start:end]其中,start表示起始索引值,end表示結(jié)束索引值。del會(huì)刪除從索引值start到end之間的元素,不包括end位置的元素。1351362.pop方法pop方法用來刪除列表中指定索引處的元素,其字面意思為彈出,類似于數(shù)據(jù)結(jié)構(gòu)中的“出?!辈僮?。其格式如下。listname.pop(index)其中,listname表示列表的名稱,index表示索引值。如果不寫index參數(shù),默認(rèn)會(huì)刪除列表中的最后一個(gè)元素。大部分編程語言都會(huì)提供和pop方法相對(duì)應(yīng)的方法,即push方法,字面意思為壓入,該方法用來將元素添加到列表的尾部,類似于數(shù)據(jù)結(jié)構(gòu)中的“入?!辈僮鳌5荘ython是個(gè)例外,Python并沒有提供push方法,因?yàn)橥耆梢允褂胊ppend方法代替push方法實(shí)現(xiàn)其功能。1373.remove方法除了del關(guān)鍵字,Python還提供了remove方法,該方法會(huì)根據(jù)元素本身的值進(jìn)行刪除操作。注意:remove方法只會(huì)刪除第一個(gè)和指定值相同的元素,而且必須保證該元素是存在的,否則會(huì)引發(fā)ValueError錯(cuò)誤。4.clear方法clear方法用來刪除列表中的所有元素,即清空列表。138六、列表中元素的修改Python提供了兩種修改列表元素的方法,可以每次修改單個(gè)元素,也可以每次修改一組元素。1.修改單個(gè)元素修改單個(gè)元素非常簡(jiǎn)單,直接對(duì)元素賦值即可。2.修改一組元素Python支持通過切片語法給一組元素賦值。在進(jìn)行這種操作時(shí),如果不指定步長(zhǎng)(step參數(shù)),Python就不會(huì)要求新賦值的元素個(gè)數(shù)與原來的元素個(gè)數(shù)相同,這意味著,該操作既可以為列表添加元素,又可以為列表刪除元素。139七、列表中元素的查找Python列表提供了index方法和count方法,它們都可以用來查找元素,一個(gè)主要用于定位,另一個(gè)則用于統(tǒng)計(jì)數(shù)量。1.index方法index方法用來查找某個(gè)元素在列表中出現(xiàn)的位置(也就是索引),如果該元素不存在,則會(huì)導(dǎo)致ValueError錯(cuò)誤。index方法的語法格式如下。listname.index(obj,start,end)其中,listname表示列表的名稱,obj表示要查找的元素,start表示起始位置,end表示結(jié)束位置。140start和end參數(shù)用來指定檢索范圍。●start和end可以都不寫,此時(shí)會(huì)檢索整個(gè)列表?!袢绻粚憇tart不寫end,那么表示檢索從start到末尾的元素?!袢绻鹲tart和end都寫,那么表示檢索start和end之間的元素。index方法會(huì)返回元素所在列表中的索引值。1412.?count方法count方法用來統(tǒng)計(jì)某個(gè)元素在列表中出現(xiàn)的次數(shù),其語法格式如下。listname.count(obj)其中,listname表示列表名稱,obj表示目標(biāo)元素。如果count返回0,表示列表中不存在該元素,所以count也可以用來判斷列表中的某個(gè)元素是否存在。任務(wù)3元組的使用1421.掌握元組的創(chuàng)建、刪除與修改方法。2.掌握對(duì)元組內(nèi)部元素進(jìn)行訪問的方法。3.能進(jìn)行元組創(chuàng)建、元組元素訪問、元組數(shù)據(jù)替換等操作。任務(wù)目標(biāo)143元組是一組有序序列,包含零個(gè)或多個(gè)對(duì)象引用。元組和列表十分相似,但元組是不可變的對(duì)象,即用戶不能修改、添加或刪除元組中的元素(但可以訪問元組中的元素)。元組的所有元素都放在一對(duì)小括號(hào)中,相鄰元素之間用逗號(hào)分隔。相關(guān)知識(shí)144元組的格式如下。(element1,element2,…,elementn)其中,element1~elementn表示元組中的元素,個(gè)數(shù)沒有限制,只要是Python支持的數(shù)據(jù)類型都可以,所以元組可以存儲(chǔ)整數(shù)、實(shí)數(shù)、字符串、列表、元組等任何類型的數(shù)據(jù),并且在同一個(gè)元組中,元素的類型可以不同。145146一、元組的創(chuàng)建1.使用小括號(hào)“()”創(chuàng)建元組使用小括號(hào)“()”創(chuàng)建元組后,一般使用等號(hào)“=”將它賦給某個(gè)變量,具體格式如下。tuplename=(element1,element2,…,elementn)其中,tuplename表示變量名,element1~elementn表示元組的元素。147注意:(1)在Python中,元組通常都是使用一對(duì)小括號(hào)將所有元素括起來,但小括號(hào)不是必需的,只要將各元素用逗號(hào)隔開,Python就會(huì)將其視為元組。(2)當(dāng)創(chuàng)建的元組中只有一個(gè)字符串類型的元素時(shí),該元素后面必須加一個(gè)逗號(hào),否則Python解釋器會(huì)將它視為字符串。1482.使用tuple函數(shù)創(chuàng)建元組除了使用小括號(hào)“()”創(chuàng)建元組,Python還提供了一個(gè)內(nèi)置的函數(shù)tuple,用來將其他數(shù)據(jù)類型轉(zhuǎn)換為元組類型。tuple函數(shù)的語法格式如下。tuple(data)其中,data表示可以轉(zhuǎn)換為元組的數(shù)據(jù)(可迭代對(duì)象),包括字符串、元組、range對(duì)象等。149二、元組的刪除當(dāng)創(chuàng)建的元組不再使用時(shí),可以通過del關(guān)鍵字將其刪除,例如以下程序。tup1=('Python','C++')print(tup1)deltup1print(tup1)150程序運(yùn)行結(jié)果如下。('Python','C++')Traceback(mostrecentcalllast):File"d:\VSCode\code\4-3.py",line4,in<module>print(tup1)NameError:name'tup1'isnotdefined151三、元組元素的訪問和列表一樣,可以使用索引訪問元組中的某個(gè)元素(得到的是一個(gè)元素的值),也可以使用切片訪問元組中的一組元素(得到的是一個(gè)新的子元組)。使用索引訪問元組元素的格式如下。tuplename[i]其中,tuplename表示元組的名稱,i表示索引值。元組的索引可以是正數(shù),也可以是負(fù)數(shù)。152使用切片訪問元組元素的格式如下。tuplename[start:end:step]其中,start表示起始索引,end表示結(jié)束索引,step表示步長(zhǎng)。以上兩種方式已在序列的使用任務(wù)中進(jìn)行了詳細(xì)講解,這里不再贅述。153四、元組的修改前面提到,元組是不可變序列,元組中的元素不能被修改,所以只能將元組變量引用到一個(gè)新創(chuàng)建的元組對(duì)象中。另外,還可以通過元組拼接(使用加號(hào)“+”拼接元組)的方式生成一個(gè)拼接過后的元組。任務(wù)4字典的使用1541.掌握字典的創(chuàng)建、刪除與訪問方法。2.掌握對(duì)字典鍵值對(duì)的操作方法。3.能創(chuàng)建字典,并進(jìn)行鍵值對(duì)的添加、修改和刪除等操作。任務(wù)目標(biāo)155字典是一種可變?nèi)萜髂P?,可存?chǔ)任意類型的對(duì)象。因?yàn)樽值涫菬o序的,所以不支持索引和切片。字典類型是Python中唯一的映射類型?!坝成洹笔菙?shù)學(xué)中的術(shù)語,指元素之間相互對(duì)應(yīng)的關(guān)系,即通過一個(gè)元素可以唯一找到另一個(gè)元素。字典映射示意圖如圖所示。相關(guān)知識(shí)156157字典映射示意圖158在字典中,習(xí)慣將各元素對(duì)應(yīng)的索引稱為鍵(key),各個(gè)鍵對(duì)應(yīng)的元素稱為值(value),鍵及其關(guān)聯(lián)的值稱為“鍵值對(duì)”。字典類型類似電話簿,如可通過電話簿中的姓名找到對(duì)應(yīng)的電話號(hào)碼。字典類型中的鍵就好比電話簿中的姓名,而這些鍵所對(duì)應(yīng)的值則相當(dāng)于對(duì)應(yīng)的電話號(hào)碼。通過字典的鍵,能夠迅速地檢索和獲取對(duì)應(yīng)的值,實(shí)現(xiàn)了高效的數(shù)據(jù)存儲(chǔ)和檢索。159字典類型所具有的主要特征見下表。字典類型所具有的主要特征160一、字典的創(chuàng)建1.使用大括號(hào)“{}”創(chuàng)建字典由于字典中每個(gè)元素都包含兩部分,分別是鍵(key)和值(value),因此,在創(chuàng)建字典時(shí),鍵和值之間使用冒號(hào)分隔,相鄰元素之間使用逗號(hào)分隔,所有元素放在大括號(hào)中。使用大括號(hào)“{}”創(chuàng)建字典的語法格式如下。dictname={'key1':'value1','key2':'value2',…,'keyn':'valuen'}其中,dictname表示字典變量名,key1:value1~keyn:valuen表示各個(gè)元素的鍵值對(duì)。161使用type函數(shù)可以查看字典的數(shù)據(jù)類型名稱,具體如下。a={'Python版本':'3.9.2'}print(type(a))程序運(yùn)行結(jié)果如下。<class'dict'>1622.使用fromkeys方法創(chuàng)建字典在Python中,可以使用字典類型提供的fromkeys方法創(chuàng)建帶有默認(rèn)值的字典,具體格式如下。dictname=dict.fromkeys(list,value=None)其中,list表示字典中所有鍵的列表;value表示默認(rèn)值,如果不寫,則為空值None。1633.使用dict函數(shù)創(chuàng)建字典通過dict函數(shù)創(chuàng)建字典的方法有多種,下表列出了常用的幾種方法,它們創(chuàng)建的都是同一個(gè)字典a。通過dict函數(shù)創(chuàng)建字典的方法164二、字典的刪除和列表、元組一樣,字典的刪除也是使用del關(guān)鍵字。字典的刪除示例如下。mark={'a':100,'b':200,'c':300}print(mark)delmarkprint(mark)165程序運(yùn)行結(jié)果如下。{'a':100,'b':200,'c':300}Traceback(mostrecentcalllast):File"d:\VSCode\code\4-4.py",line4,in<module>print(mark)NameError:name'mark'isnotdefined166三、字典的訪問列表和元組可以通過索引來訪問元素,而字典不同,它通過鍵來訪問對(duì)應(yīng)的值。因?yàn)樽值渲械脑厥菬o序的,每個(gè)元素的位置都不固定,所以字典不能像列表和元組那樣,采用切片的方式一次性訪問多個(gè)元素。字典訪問元素的具體格式如下。dictname[key]其中,dictname表示字典變量名,key表示鍵名。注意:鍵必須是存在的,否則會(huì)報(bào)錯(cuò)。167除了上面這種方式,更推薦使用dict類型提供的get方法來獲取指定鍵對(duì)應(yīng)的值。當(dāng)指定的鍵不存在時(shí),get方法不會(huì)拋出異常。get方法的語法格式如下。dictname.get(key,default=None)其中,dictname表示字典變量的名稱;key表示指定的鍵;default用于指定要查詢的鍵不存在時(shí)此方法返回的默認(rèn)值,如果不手動(dòng)指定,則返回None。注意:當(dāng)鍵不存在時(shí),get方法返回空值None,如果想明確地提示用戶該鍵不存在,可以手動(dòng)設(shè)置get方法的第二個(gè)參數(shù)。168四、字典鍵值對(duì)的添加為字典添加新的鍵值對(duì)很簡(jiǎn)單,直接給不存在的key賦值即可,具體語法格式如下。dictname[key]=value其中,dictname表示字典變量名;key表示新的鍵;value表示新的值,只要是Python支持的數(shù)據(jù)類型都可以。169下面的代碼演示了在現(xiàn)有字典上添加新元素的過程。mark={'a':100,'b':200,'c':300}mark['d']=400print(mark)程序運(yùn)行結(jié)果如下。{'a':100,'b':200,'c':300,'d':400}170五、字典鍵值對(duì)的修改Python字典中鍵的名稱不能被修改,只能修改值。字典中各元素的鍵必須是唯一的,因此,如果新添加元素的鍵與已存在元素的鍵相同,那么已存在元素的鍵所對(duì)應(yīng)的值就會(huì)被新的值替換掉,以此達(dá)到修改元素值的目的。171六、字典鍵值對(duì)的刪除如果要?jiǎng)h除字典中的鍵值對(duì),依然可以使用del關(guān)鍵字。使用del關(guān)鍵字刪除鍵值對(duì)的程序示例如下。mark={'a':100,'b':200,'c':300}delmark['a']print(mark)程序運(yùn)行結(jié)果如下。{'b':200,'c':300}172七、字典是否存在指定鍵值對(duì)的判斷如果要判斷字典中是否存在指定鍵值對(duì),首先應(yīng)判斷字典中是否有對(duì)應(yīng)的鍵。判斷字典中是否存在指定鍵值對(duì)的鍵,可以使用in或notin運(yùn)算符。例如以下程序。mark={'a':100,'b':200,'c':300}print('a'inmark)程序運(yùn)行結(jié)果如下。True任務(wù)5集合的使用1731.掌握集合的創(chuàng)建與刪除操作。2.掌握對(duì)集合內(nèi)元素的操作方法。3.掌握集合的交集、并集、差集及對(duì)稱差集運(yùn)算方法。4.能進(jìn)行集合創(chuàng)建、刪除與添加元素、交集和并集運(yùn)算等操作。任務(wù)目標(biāo)174Python中的集合和數(shù)學(xué)中的集合概念一樣,都是用來保存不重復(fù)的元素,即集合中的元素都是唯一的,互不相同。集合中的所有元素都放在一對(duì)大括號(hào)“{}”中,相鄰元素之間用逗號(hào)分隔。集合的語法格式如下。{element1,element2,…,elementn}相關(guān)知識(shí)175176其中,element表示集合中的元素,其個(gè)數(shù)沒有限制。同一集合中,只能存儲(chǔ)不可變的數(shù)據(jù)類型,包括整數(shù)型、浮點(diǎn)型、字符串型、元組,無法存儲(chǔ)列表、字典、集合這些可變的數(shù)據(jù)類型,否則Python解釋器會(huì)報(bào)TypeError錯(cuò)誤。注意:數(shù)據(jù)必須是唯一的,因?yàn)榧蠈?duì)于每種數(shù)據(jù)元素只保留一份。另外,由于Python中的集合是無序的,所以每次輸出元素的排列順序可能都不相同。177一、集合的創(chuàng)建Python提供了兩種創(chuàng)建集合的方法,分別是使用大括號(hào)“{}”創(chuàng)建集合和使用set函數(shù)將列表、元組等類型的數(shù)據(jù)轉(zhuǎn)換為集合。1.使用大括號(hào)“{}”創(chuàng)建集合在Python中,創(chuàng)建集合可以像列表、元組和字典一樣,直接將集合賦給變量,從而達(dá)到創(chuàng)建集合的目的,其語法格式如下。setname={element1,element2,…,elementn}其中,setname表示集合的名稱,命名時(shí)既要符合Python的命名規(guī)范,又要避免與Python內(nèi)置函數(shù)重名。1782.使用set函數(shù)創(chuàng)建集合set函數(shù)為Python的內(nèi)置函數(shù),其作用是將字符串、列表、元組、range對(duì)象等可迭代對(duì)象轉(zhuǎn)換成集合。該函數(shù)的語法格式如下。setname=set(iteration)其中,iteration表示字符串、列表、元組、range對(duì)象等數(shù)據(jù)。179二、集合的刪除和其他序列類型一樣,刪除函數(shù)集合類型,也可以使用del關(guān)鍵字,例如以下程序。set1=set("HelloWorld!")print(set1)delset1print(set1)180程序運(yùn)行結(jié)果如下。{'d','o','l','r','H','!','W','e'}Traceback(mostrecentcalllast):File"d:\VSCode\code\4-5.py",line4,in<module>print(set1)NameError:name'set1'isnotdefined181三、向集合添加元素向集合添加元素,可以使用set類型提供的add方法實(shí)現(xiàn),該方法的語法格式如下。setname.add(element)其中,setname表示要添加元素的集合,element表示要添加的元素。注意:使用add方法添加的元素,只能是數(shù)字、字符串、元組或者布爾類型值(True和False),不能添加列表、字典、集合這類可變的數(shù)據(jù),否則Python解釋器會(huì)報(bào)TypeError錯(cuò)誤。182四、從集合刪除元素刪除現(xiàn)有集合中的指定元素,可以使用remove方法,該方法的語法格式如下。setname.remove(element)注意:如果被刪除元素本就不包含在集合中,則此方法會(huì)報(bào)KeyError錯(cuò)誤。如果不想在刪除失敗時(shí)令解釋器提示KeyError錯(cuò)誤,還可以使用discard方法,此方法和remove方法的用法完全相同,唯一的區(qū)別就是,當(dāng)刪除集合中的元素失敗時(shí),此方法不會(huì)報(bào)任何錯(cuò)誤。183五、集合的交集、并集、差集及對(duì)稱差集運(yùn)算集合最常做的操作就是進(jìn)行交集、并集、差集以及對(duì)稱差集運(yùn)算。集合的不同運(yùn)算任務(wù)1使用if...else語句實(shí)現(xiàn)模擬用戶登錄01任務(wù)2使用while循環(huán)語句實(shí)現(xiàn)數(shù)值的累加02任務(wù)3使用for循環(huán)語句實(shí)現(xiàn)列表的生成03184任務(wù)1

使用if...else語句實(shí)現(xiàn)模擬用戶登錄1851.?熟悉if...else語句的結(jié)構(gòu)與執(zhí)行流程。2.?了解pass語句、assert語句、break語句及continue語句的作用。3.?能使用if...else語句實(shí)現(xiàn)模擬用戶登錄。任務(wù)目標(biāo)186一、if...else語句在Python中,通常使用if、elif和else條件語句實(shí)現(xiàn)選擇(分支)結(jié)構(gòu)的基本功能。1.?單分支結(jié)構(gòu)if語句單分支結(jié)構(gòu)的語法格式如下。if(條件表達(dá)式):語句/語句塊相關(guān)知識(shí)187其中,條件表達(dá)式可以是關(guān)系表達(dá)式、邏輯表達(dá)式、算術(shù)表達(dá)式等,語句/語句塊可以是單個(gè)語句,也可以是多個(gè)語句。多個(gè)語句的縮進(jìn)必須一致。當(dāng)條件表達(dá)式的值為真(True)時(shí),執(zhí)行if后面的語句塊,否則不做任何操作且控制將轉(zhuǎn)到if語句的結(jié)束點(diǎn)。條件表達(dá)式最后被評(píng)價(jià)為布爾值True(真)或False(假)。如果表達(dá)式的結(jié)果為數(shù)字類型、空字符串、空元組、空列表、空字典,其布爾值為False(假),否則其布爾值為True(真)。1882.?雙分支結(jié)構(gòu)if語句雙分支結(jié)構(gòu)的語法格式如下。if(條件表達(dá)式):語句/語句塊1else:語句/語句塊2當(dāng)條件表達(dá)式的值為真時(shí),執(zhí)行if后面的語句/語句塊1,否則執(zhí)行else后面的語句/語句塊2。1893.?多分支結(jié)構(gòu)if語句多分支結(jié)構(gòu)的語法格式如下。if(條件表達(dá)式1):語句/語句塊1elif(條件表達(dá)式2):語句/語句塊2...elif(條件表達(dá)式n):語句/語句塊nelse:語句/語句塊n+1190該語句的作用是根據(jù)不同條件表達(dá)式的值確定執(zhí)行哪個(gè)語句/語句塊。注意:(1)if、elif和else后面的代碼塊一定要縮進(jìn),而且縮進(jìn)量一定要大于if、elif和else本身,從編程習(xí)慣的角度,建議縮進(jìn)4個(gè)空格。(2)一個(gè)代碼塊的所有語句都要縮進(jìn),而且縮進(jìn)量必須相同。如果某個(gè)語句忘記縮進(jìn)了或者縮進(jìn)量不同,Python解釋器并不一定會(huì)報(bào)錯(cuò),但是程序的運(yùn)行邏輯往往會(huì)有問題。(3)不需要使用代碼塊的地方一定不要縮進(jìn),一旦縮進(jìn)就會(huì)產(chǎn)生一個(gè)代碼塊。191二、pass語句及其作用在實(shí)際開發(fā)中,有時(shí)需要先搭建程序的整體邏輯結(jié)構(gòu),暫時(shí)不去實(shí)現(xiàn)某些細(xì)節(jié),通常在這些地方加一些注釋,方便以后再添加代碼,例如以下程序。mark=int(input("請(qǐng)輸入您的分?jǐn)?shù):"))ifmark<60:print("不及格")elifmark>=60andmark<70:print("及格")elifmark>=70andmark<90:192#后續(xù)細(xì)分else:print("優(yōu)秀")當(dāng)分?jǐn)?shù)大于或等于70且小于90時(shí),沒有使用print語句,而是使用了一個(gè)注釋,希望以后再處理分?jǐn)?shù)大于或等于70且小于90的情況。當(dāng)Python處理到該elif分支時(shí),會(huì)跳過注釋,什么都不執(zhí)行。Python提供了一種更加專業(yè)的做法,就是空語句pass。pass是Python中的關(guān)鍵字,用來讓解釋器跳過此處,什么都不做。就像上面的情況,有時(shí)候程序需要占用一個(gè)位置,或者放一條語句,但又不希望這條語句做任何事情,此時(shí)就可以通過pass語句來實(shí)現(xiàn)。使用pass語句比使用注釋更加符合Python編程規(guī)范。193使用pass語句更改上面的程序,更改后的程序如下。mark=int(input("請(qǐng)輸入您的分?jǐn)?shù):"))ifmark<60:print("不及格")elifmark>=60andmark<70:print("及格")elifmark>=70andmark<90:passelse:print("優(yōu)秀")194程序運(yùn)行后,在終端輸入80并按“Enter”鍵。請(qǐng)輸入您的分?jǐn)?shù):80可以看到,程序雖然執(zhí)行到分?jǐn)?shù)段在70到90之間的elif語句,但是并沒有進(jìn)行任何操作。195三、assert語句及其作用Python中的assert語句又稱斷言語句,可以看作功能縮小版的if語句,用于判斷某個(gè)表達(dá)式的值,如果值為真,則程序可以繼續(xù)往下執(zhí)行;反之,Python解釋器會(huì)報(bào)AssertionError錯(cuò)誤。assert語句的語法格式如下。assert表達(dá)式assert語句通常用在程序排錯(cuò)的情景下,當(dāng)取值不滿足特定條件時(shí),直接讓程序崩潰,從而發(fā)現(xiàn)錯(cuò)誤與漏洞。196此外,assert語句通常用于檢查用戶的輸入是否符合規(guī)定,還經(jīng)常用作程序初期測(cè)試和調(diào)試過程中的輔助工具。其使用示例如下。mark=int(input())assert0<=mark<=100print("輸入的分?jǐn)?shù)為:",mark)197運(yùn)行程序后,在終端輸入相應(yīng)的數(shù)字并按“Enter”鍵。當(dāng)輸入的數(shù)字滿足assert表達(dá)式的條件(即輸入數(shù)字在0到100之間)時(shí),程序輸出結(jié)果如下。50輸入的分?jǐn)?shù)為:50當(dāng)輸入的數(shù)字不滿足要求時(shí),程序輸出結(jié)果如下。Traceback(mostrecentcalllast):File"d:\VSCode\code\5-1.py",line2,in<module>assert0<=mark<=100AssertionErrorPython解釋器報(bào)AssertionError錯(cuò)誤,程序不再繼續(xù)運(yùn)行。198199四、break語句及其作用前面講過,在執(zhí)行while循環(huán)或者for循環(huán)時(shí),只要循環(huán)條件滿足,程序?qū)⒁恢敝貜?fù)執(zhí)行循環(huán)體。循環(huán)體是程序中的一個(gè)代碼塊,它會(huì)被重復(fù)執(zhí)行,直到循環(huán)條件不再滿足。在循環(huán)結(jié)構(gòu)中,循環(huán)體是由一組語句組成的,這些語句會(huì)按照順序執(zhí)行,然后根據(jù)循環(huán)條件的真假?zèng)Q定是否再次執(zhí)行循環(huán)體。循環(huán)體是循環(huán)的核心部分,通過循環(huán)體的執(zhí)行,可以實(shí)現(xiàn)對(duì)同一段代碼的多次重復(fù)利用,從而簡(jiǎn)化程序的編寫和維護(hù)。但在某些場(chǎng)景中,可能希望在循環(huán)結(jié)束前就強(qiáng)制結(jié)束循環(huán),Python提供了兩種強(qiáng)制離開當(dāng)前循環(huán)體的方法,具體如下。200●使用continue語句,可以跳過執(zhí)行本次循環(huán)體中剩余的代碼,轉(zhuǎn)而執(zhí)行下一次的循環(huán)?!袷褂胋reak語句,終止當(dāng)前循環(huán)。這里先講解break語句的用法。break語句可以立即終止當(dāng)前循環(huán)的執(zhí)行,跳出當(dāng)前所在的循環(huán)結(jié)構(gòu)。無論是while循環(huán)還是for循環(huán),只要執(zhí)行break語句,就會(huì)直接離開當(dāng)前正在執(zhí)行的循環(huán)體。break語句通常搭配while語句或for語句使用,使用方法非常簡(jiǎn)單,在相應(yīng)的while語句或for語句中加入break指令即可。201五、continue語句及其作用和break語句相比,continue語句的跳轉(zhuǎn)范圍較小,它只會(huì)終止執(zhí)行本次循環(huán)中剩下的代碼,直接從下一次循環(huán)繼續(xù)執(zhí)行。continue語句的用法和break語句一樣,通常搭配while語句或for語句使用,在while或for語句中的相應(yīng)位置加入continue指令即可。從結(jié)果可以看出,當(dāng)遍歷str1字符串至逗號(hào)“,”時(shí),就會(huì)進(jìn)入if判斷語句,執(zhí)行print語句和continue語句,此處的print語句起換行的作用,而continue語句則起跳過后面的程序,直接從下一次循環(huán)開始執(zhí)行的作用。任務(wù)2

使用while循環(huán)語句實(shí)現(xiàn)數(shù)值的累加2021.?熟悉while循環(huán)語句的結(jié)構(gòu)與執(zhí)行流程。2.?能使用while循環(huán)語句實(shí)現(xiàn)數(shù)值的累加。任務(wù)目標(biāo)203Python中的while循環(huán)語句(以下簡(jiǎn)稱while語句)和if條件分支語句類似,即在條件(表達(dá)式)為真的情況下,會(huì)執(zhí)行相應(yīng)的代碼塊。不同之處在于,只要條件為真,while語句就會(huì)一直重復(fù)執(zhí)行相應(yīng)的代碼塊。while語句的語法格式如下。while條件表達(dá)式:代碼塊相關(guān)知識(shí)204while語句執(zhí)行的具體流程:首先判斷條件表達(dá)式的值,其值為真(True)時(shí),執(zhí)行代碼塊中的語句,執(zhí)行完畢,再次判斷條件表達(dá)式的值是否為真,若仍為

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論