《Python程序設(shè)計(jì)》 課件 張小志 項(xiàng)目5、6 列表與元組應(yīng)用、字典與集合應(yīng)用_第1頁
《Python程序設(shè)計(jì)》 課件 張小志 項(xiàng)目5、6 列表與元組應(yīng)用、字典與集合應(yīng)用_第2頁
《Python程序設(shè)計(jì)》 課件 張小志 項(xiàng)目5、6 列表與元組應(yīng)用、字典與集合應(yīng)用_第3頁
《Python程序設(shè)計(jì)》 課件 張小志 項(xiàng)目5、6 列表與元組應(yīng)用、字典與集合應(yīng)用_第4頁
《Python程序設(shè)計(jì)》 課件 張小志 項(xiàng)目5、6 列表與元組應(yīng)用、字典與集合應(yīng)用_第5頁
已閱讀5頁,還剩197頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

項(xiàng)目5列表與元組應(yīng)用了解常用的組合數(shù)據(jù)類型01理解序列的基本概念及序列的特點(diǎn)02理解列表的基本概念03知識目標(biāo)掌握列表的常用內(nèi)置函數(shù)和方法04理解列表推導(dǎo)式的基本概念05理解元組的基本概念06理解列表與元組的區(qū)別07能夠掌握列表的創(chuàng)建01能夠掌握列表元素的訪問、列表的循環(huán)遍歷02能夠掌握使用常用內(nèi)置函數(shù)和方法操作列表03能力目標(biāo)能夠完成列表中增加、修改、刪除列表元素等操作04能夠完成嵌套列表的創(chuàng)建、嵌套列表元素的訪問05能夠完成元組的創(chuàng)建06能夠完成元組元素的訪問07目錄演講比賽評分系統(tǒng)設(shè)計(jì)任務(wù)1快遞超市管理系統(tǒng)設(shè)計(jì)任務(wù)2任務(wù)提出01任務(wù)分析02知識準(zhǔn)備03任務(wù)1演講比賽評分系統(tǒng)設(shè)計(jì)任務(wù)實(shí)現(xiàn)04任務(wù)總結(jié)05任務(wù)提出Part.01提出任務(wù)1.

某演講比賽有11位評委為選手打分,選手的最終得分計(jì)算規(guī)則是:去掉一個(gè)最高分、去掉一個(gè)最低分,然后計(jì)算剩下所有得分的平均分,平均分即為該選手的最終得分。2.設(shè)計(jì)一個(gè)簡單的比賽評分系統(tǒng),實(shí)現(xiàn)求某位選手最終得分,如圖所示。任務(wù)分析Part.02任務(wù)分析1.創(chuàng)建Python程序Score.py。2.創(chuàng)建一個(gè)列表用來保存選手的所有得分。3.找到列表中的最高分和最低分。4.計(jì)算列表中剩下的所有得分的平均值,即為選手的最終得分。5.測試運(yùn)行程序,并通過輸出結(jié)果檢驗(yàn)程序。

本任務(wù)涉及到對多個(gè)評委的打分進(jìn)行處理,需要?jiǎng)?chuàng)建列表用于保存和處理所有的得分,具體的任務(wù)實(shí)施分析如下:知識準(zhǔn)備Part.03序列01列表02列表的循環(huán)遍歷03知識準(zhǔn)備列表的排序04常見的序列類型01序列的特點(diǎn)02常用的序列操作035.1序列組合數(shù)據(jù)類型是將多個(gè)相同數(shù)據(jù)類型或不同數(shù)據(jù)類型的數(shù)據(jù)組成的一個(gè)整體,根據(jù)數(shù)據(jù)組合方式不同,Python的組合數(shù)據(jù)類型可分為以下三種:序列類型、集合類型和字典類型。常見的序列類型在Python的內(nèi)置數(shù)據(jù)類型中,序列是由一組有序的數(shù)據(jù)元素排列的集合,可以通過元素在序列中的位置操作其元素,即通過索引(也稱下標(biāo))的方式操作序列中的一個(gè)或若干個(gè)數(shù)據(jù)元素。Python中常見的序列類型有列表(list)和元組(tuple),也包括前面講到的字符串(string)類型。支持雙向索引序列的特點(diǎn)正向遞增的正數(shù)索引:自左向右,從0開始,第二個(gè)元素的索引是1,依此類推;反向遞減的負(fù)數(shù)索引:自右向左,從-1開始,倒數(shù)第二個(gè)元素的索引為-2。字符串中元素的索引列表中元素的索引序列類型有著一些通用的特定操作,即字符串、列表、元組這些序列類型有著一樣的序列元素的操作方式,如下所示。常用的序列操作通過正向索引、反向索引訪問序列中的一個(gè)元素。通過切片訪問序列中的部分元素。多個(gè)序列相加、序列與數(shù)字相乘,然后得到新的序列。使用成員運(yùn)算符in和notin來判斷序列中是否包含某元素。使用in運(yùn)算符判斷時(shí),如果序列中包含某元素則返回結(jié)果為True,否則為False;而notin運(yùn)算符則正好相反。序列的常用內(nèi)置函數(shù)和方法。序列的常用內(nèi)置函數(shù)和方法,如表所示。常用的序列操作函數(shù)/方法語法格式說明內(nèi)置函數(shù)len(序列)計(jì)算序列的長度max(序列)返回序列的最大元素min(序列)返回序列的最小元素sum(序列,start=0)計(jì)算序列中所有元素的和,第2個(gè)參數(shù)start為可選參數(shù),指定和的起始值,默認(rèn)為0方法序列.index(元素)查找元素在序列中第一次出現(xiàn)的位置索引序列.count(元素)統(tǒng)計(jì)元素在序列中出現(xiàn)的次數(shù)列表的創(chuàng)建01訪問列表元素02常用列表操作035.2列表Python中列表(list)類似于其他語言的數(shù)組,可以由一組不同數(shù)據(jù)類型的元素組成,且數(shù)據(jù)元素可以是任意類型,既可以是整型、浮點(diǎn)、布爾等簡單數(shù)據(jù)類型,也可以是字符串、列表、元組、字典等組合數(shù)據(jù)類型。列表的創(chuàng)建創(chuàng)建列表的有三種常用的方式:使用中括號[]使用內(nèi)置函數(shù)list()使用列表推導(dǎo)式列表的創(chuàng)建1.使用中括號[]使用中括號創(chuàng)建列表時(shí),將每個(gè)列表元素用逗號分隔后,放到中括號“[]”中,語法格式如下:

列表變量名=[元素1,元素2,……]2.使用內(nèi)置函數(shù)list()使用內(nèi)置函數(shù)list()創(chuàng)建列表時(shí),函數(shù)接收的參數(shù)必須是一個(gè)可迭代類型的數(shù)據(jù),例如字符串、列表等類型的數(shù)據(jù),語法格式如下:

列表變量名=list(可迭代類型的數(shù)據(jù))創(chuàng)建列表,示例代碼如下:列表的創(chuàng)建程序運(yùn)行結(jié)果列表的創(chuàng)建3.使用列表推導(dǎo)式列表推導(dǎo)式是可以利用range()函數(shù)、元組、字典和集合等可以迭代循環(huán)的數(shù)據(jù)類型,用于快速生成一個(gè)滿足指定需求的列表,語法格式如下:[表達(dá)式for迭代變量in可迭代對象[if條件表達(dá)式]]列表推導(dǎo)式的執(zhí)行過程是,用for循環(huán)遍歷可迭代對象,逐一將迭代對象的數(shù)據(jù)元素賦值給迭代變量,然后由包含迭代變量的表達(dá)式進(jìn)行運(yùn)算,最后將運(yùn)算結(jié)果追加到列表中。如果使用if條件表達(dá)式,則是僅當(dāng)if條件表達(dá)式為True時(shí),才將迭代變量用于表達(dá)式運(yùn)算。創(chuàng)建列表,包含數(shù)字0-9的平方數(shù)列表的創(chuàng)建程序運(yùn)行結(jié)果創(chuàng)建列表,包含整數(shù)0-100中可以被3和5整除的所有數(shù)字程序運(yùn)行結(jié)果訪問列表元素1.使用索引,通過正向索引、反向索引的方式訪問列表中一個(gè)指定位置的元素,語法格式如下:列表變量名[索引],……]程序運(yùn)行結(jié)果使用索引方式訪問列表元素,示例代碼如下:訪問列表元素2.使用切片,列表支持切片截取列表中的部分元素,語法格式如下:列表變量名[起始:結(jié)束:步長]切片截取從起始索引到結(jié)束索引的元素,如果步長是大于1的數(shù),那么會跳過某些元素。注意:選取的區(qū)間左閉右開,不包含結(jié)束索引的元素程序運(yùn)行結(jié)果使用切片訪問列表元素,示例代碼如下:常用列表操作列表類型是序列的一種,支持使用常用內(nèi)置函數(shù)和序列的方法操作列表,也可以使用列表相加、列表與數(shù)字相乘等操作。此外,Python還提供了in和notin運(yùn)算符,用于判斷列表中是否包含某元素,使用in運(yùn)算符判斷時(shí),如果存在則返回結(jié)果為True,否則為False。常用列表操作常用的列表操作,示例代碼如下:程序運(yùn)行結(jié)果程序運(yùn)行結(jié)果使用while循環(huán)01使用for循環(huán)025.3列表的循環(huán)遍歷使用while循環(huán)程序運(yùn)行結(jié)果在使用while循環(huán)遍歷列表時(shí),通常在while循環(huán)前面定義列表和循環(huán)用的變量i,然后使用i小于列表的長度做判斷條件,來限制循環(huán)執(zhí)行的次數(shù)。使用while循環(huán)遍歷列表,示例代碼如下:使用for循環(huán)程序運(yùn)行結(jié)果在使用for循環(huán)遍歷列表時(shí),依次將當(dāng)前循環(huán)對應(yīng)的列表元素賦值給for后面的變量,語法格式如下:for變量名in列表:

循環(huán)語句使用for循環(huán)遍歷列表,示例代碼如下:使用for循環(huán)使用for循環(huán)除了可以遍歷整個(gè)列表,也可以遍歷使用切片截取后的列表。程序運(yùn)行結(jié)果使用for循環(huán)遍歷切片截取后的列表,示例代碼如下:5.4列表的排序列表中的元素可以進(jìn)行升序、降序或者逆序排列。其中逆序就是將元素前后位置反轉(zhuǎn),最前面的元素放到最后面,最后面的元素放到最前面。列表的排序比如,列表[6,5,3,2,8,9]升序排列后變?yōu)閇2,3,5,6,8,9]降序排列后變?yōu)閇9,8,6,5,3,2]逆序排列后變?yōu)閇9,8,2,3,5,6]列表的升降序排列可以使用sort()方法或者sorted()函數(shù),逆序可以使用reverse()方法或者切片。列表的排序函數(shù)/方法語法格式說明sort()方法升序:列表.sort()降序:列表.sort(reverse=True)對原列表進(jìn)行排序,即原列表會被排序后的列表覆蓋。sorted()函數(shù)升序:sorted(列表)降序:sorted(列表,reverse=True)有返回值,會返回一個(gè)新的有序列表,原列表沒有改變。reverse()方法列表.reverse()對原列表進(jìn)行逆序排列,即原列表會被逆序后的列表覆蓋。使用切片列表[::-1]使用省略起始和結(jié)束的索引、步長為-1的切片,原列表沒有改變。列表的排序程序運(yùn)行結(jié)果列表的升降序排列可以使用sort()方法或者sorted()函數(shù)。列表的排序操作,示例代碼如下:列表的排序逆序可以使用reverse()方法或者切片.程序運(yùn)行結(jié)果列表的逆序操作,示例代碼如下:任務(wù)實(shí)現(xiàn)Part.04分析代碼01編寫代碼02任務(wù)實(shí)現(xiàn)分析代碼使用內(nèi)置函數(shù)max()和min()找出列表中最大值和最小值,即最高分和最低分。對分?jǐn)?shù)列表scores用sort()方法進(jìn)行升序排列,第一個(gè)元素即為最低分,最后一個(gè)元素為最高分。通過分析任務(wù)要求可知,任務(wù)實(shí)現(xiàn)的步驟是:創(chuàng)建一個(gè)列表scores用來保存選手的所有得分,找到列表中的最高分和最低分,計(jì)算列表中剩下的所有得分的平均值,即為選手的最終得分。其中找列表中的最高分和最低分有以下兩種辦法:(1)啟動PyCharm,新建Python項(xiàng)目Chapter05,新建Python文件Score.Py(2)在Score文件的代碼編輯窗口,輸入如下代碼:編寫代碼程序運(yùn)行結(jié)果(3)再創(chuàng)建第2個(gè)程序文件,在對話框中輸入文件名Score2。在Score2.py文件的代碼編輯窗口,輸入如下代碼:編寫代碼程序運(yùn)行結(jié)果任務(wù)總結(jié)Part.05通過本任務(wù)的學(xué)習(xí),全面的掌握了Python列表的創(chuàng)建、列表元素的訪問、常見的列表操作、列表的循環(huán)遍歷和列表的排序等內(nèi)容。在使用時(shí)需要注意以下幾點(diǎn):創(chuàng)建列表除了可以使用中括號、內(nèi)置函數(shù)list()、列表推導(dǎo)式以外,還可以通過復(fù)制現(xiàn)有列表、使用extend()或+運(yùn)算符連接列表、使用itertools模塊等方式來創(chuàng)建列表。Python中列表的索引是從0開始的,而不是從1開始。索引的取值范圍是0至列表長度-1,如果使用的索引值超出索引范圍時(shí),程序會報(bào)索引越界錯(cuò)誤。列表切片不包括結(jié)束索引對應(yīng)的元素。如果起始索引大于或等于結(jié)束索引,并且沒有指定負(fù)步長,那么切片將為空。不帶任何參數(shù)的切片將返回整個(gè)列表。默認(rèn)情況下,列表排序是基于列表中元素的升序排列。Python中還支持通過key參數(shù)來自定義排序依據(jù),比如按照字符串長度、元素的某個(gè)屬性或其他復(fù)雜邏輯進(jìn)行排序。任務(wù)提出01任務(wù)分析02知識準(zhǔn)備03任務(wù)2

快遞超市管理系統(tǒng)設(shè)計(jì)任務(wù)實(shí)現(xiàn)04任務(wù)總結(jié)05任務(wù)提出Part.01提出任務(wù)設(shè)計(jì)一個(gè)簡單的快遞超市管理系統(tǒng),用于對快遞超市的快遞進(jìn)行管理與維護(hù),主要包括添加快遞單號、刪除快遞單號、修改快遞單號、查詢快遞單號、退出系統(tǒng)等功能,系統(tǒng)界面如圖所示。任務(wù)分析Part.02任務(wù)分析1.創(chuàng)建Python程序ExpressManage.py。2.編寫程序完成功能界面顯示提示用戶選擇功能。3.創(chuàng)建一個(gè)列表用來保存所有的快遞單號。4.通過input()函數(shù)接收用戶的選擇。5.使用列表的基本操作完成用戶選擇的功能。6.測試運(yùn)行程序,檢驗(yàn)程序各項(xiàng)功能。

本任務(wù)主要實(shí)現(xiàn)的是快遞單號的管理,可以使用列表存儲所有的快遞單號;通過關(guān)鍵字、函數(shù)或方法對列表的元素完成添加、修改、刪除等操作,以實(shí)現(xiàn)對快遞單號的管理與維護(hù),具體的任務(wù)實(shí)施分析如下:知識準(zhǔn)備Part.03管理列表元素01嵌套列表02知識準(zhǔn)備增加列表元素01刪除列表元素02修改列表元素035.5管理列表元素在Python中,列表是一個(gè)可變序列,允許增加、修改、刪除列表中的數(shù)據(jù)元素,常見的操作方法如表所示。管理列表元素分類關(guān)鍵字/函數(shù)/方法語法格式說明增加元素insert()方法列表.insert(index,object)在列表的指定位置index前插入數(shù)據(jù)元素append()方法列表.append(object)將數(shù)據(jù)元素追加到列表的末尾extend()方法列表1.extend(列表2)將列表2的數(shù)據(jù)元素一次性追加到列表1的末尾管理列表元素分類關(guān)鍵字/函數(shù)/方法語法格式說明刪除元素del關(guān)鍵字del列表[索引]刪除列表中指定索引的數(shù)據(jù)元素pop()方法列表.pop()刪除列表的最后一個(gè)元素列表.pop(索引)刪除列表中指定索引的數(shù)據(jù)元素remove()方法列表.remove(數(shù)據(jù))根據(jù)數(shù)據(jù)刪除,刪除列表中第一個(gè)出現(xiàn)該數(shù)據(jù)的元素clear()方法列表.clear()清空列表的所有元素修改元素賦值運(yùn)算符=列表[索引]=新值修改列表中指定位置的數(shù)據(jù)刪除元素del關(guān)鍵字del列表[索引]刪除列表中指定索引的數(shù)據(jù)元素增加列表元素增加列表元素,示例代碼如下:程序運(yùn)行結(jié)果刪除列表元素刪除列表元素,示例代碼如下:程序運(yùn)行結(jié)果程序運(yùn)行結(jié)果修改列表元素修改列表元素,示例代碼如下:程序運(yùn)行結(jié)果嵌套列表的創(chuàng)建與訪問01嵌套列表的循環(huán)遍歷02嵌套列表元素的操作035.6嵌套列表Python中,嵌套列表指的是一個(gè)列表中包含一個(gè)或多個(gè)子列表的情況。嵌套列表常用于表示二維數(shù)組、矩陣或更復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。嵌套列表的創(chuàng)建與訪問訪問嵌套列表中的元素,需要指定兩個(gè)索引:第一個(gè)索引用于選擇外部列表的元素(即子列表),第二個(gè)索引用于選擇子列表中的元素。程序運(yùn)行結(jié)果嵌套列表的創(chuàng)建與元素的訪問,示例代碼如下:嵌套列表可以通過索引的方式獲取的元素,也可以通過單層while循環(huán)、for循環(huán)逐個(gè)獲取嵌套列表的子元素。嵌套列表的循環(huán)遍歷程序運(yùn)行結(jié)果嵌套列表的單層循環(huán)遍歷,示例代碼如下:嵌套列表的多層循環(huán)遍歷,示例代碼如下:嵌套列表的循環(huán)遍歷程序運(yùn)行結(jié)果嵌套列表允許添加、修改、刪除數(shù)據(jù)元素,與訪問元素類似,也可以通過指定兩個(gè)索引來修改嵌套列表中的元素。嵌套列表元素的操作程序運(yùn)行結(jié)果嵌套列表元素的修改,示例代碼如下:任務(wù)實(shí)現(xiàn)Part.04分析代碼01編寫代碼02任務(wù)實(shí)現(xiàn)分析代碼選擇功能:可使用print()函數(shù)提供一個(gè)系統(tǒng)界面,并使用input()函數(shù)選擇功能。實(shí)現(xiàn)功能:根據(jù)用戶選擇的功能,分別執(zhí)行添加、刪除、修改快遞單號,可以通過列表list的append()方法、remove()方法、賦值等實(shí)現(xiàn)對列表元素(快遞單號)的添加、修改、刪除操作。結(jié)束:使用break跳出循環(huán)退出系統(tǒng)。通過任務(wù)分析,首先需要使用創(chuàng)建一個(gè)列表list用于保存所有的快遞單號。接著使用循環(huán)語句保障程序持續(xù)運(yùn)行,然后可將快遞超市管理系統(tǒng)分為三個(gè)部分,選擇功能、實(shí)現(xiàn)功能與結(jié)束。(1)啟動PyCharm,在項(xiàng)目文件夾Chapter05中新建Python文件ExpressManage.Py

(2)在ExpressManage.py文件的代碼編輯窗口,輸入如下代碼:編寫代碼編寫代碼程序運(yùn)行結(jié)果任務(wù)總結(jié)Part.05通過本任務(wù)的學(xué)習(xí),全面的掌握了列表元素的增加、刪除和修改操作,以及嵌套列表的創(chuàng)建、訪問、遍歷、添加、修改、刪除等操作。在使用時(shí)需要注意以下幾點(diǎn):在使用del關(guān)鍵字或pop()方法刪除列表中指定索引的元素時(shí),注意索引的范圍是0至列表長度減1,使用索引值超出索引范圍時(shí),程序會報(bào)“IndexError:listindexoutofrange”索引越界錯(cuò)誤。使用remove()方法根據(jù)值刪除列表中第一個(gè)出現(xiàn)該數(shù)據(jù)值的元素時(shí),如果參數(shù)值在列表中不存在,程序會報(bào)“ValueError:list.remove(x):xnotinlist”錯(cuò)誤。嵌套列表中的外部列表和內(nèi)部列表都有自己的索引,因此需要通過兩個(gè)索引來訪問內(nèi)部列表的元素。切片操作在嵌套列表上同樣適用,但要注意切片是外部列表還是內(nèi)部列表的。對于大型嵌套列表,某些操作(如搜索、排序或遍歷)可能會變得非常慢。任務(wù)提出01任務(wù)分析02知識準(zhǔn)備03任務(wù)3中文數(shù)字轉(zhuǎn)換任務(wù)實(shí)現(xiàn)04任務(wù)總結(jié)05任務(wù)提出Part.01提出任務(wù)編寫程序,按照中文數(shù)字對照表,將輸入的阿拉伯?dāng)?shù)字轉(zhuǎn)換成大寫中文數(shù)字。比如:阿拉伯?dāng)?shù)字的“1到0”轉(zhuǎn)換成中文大寫的“壹到零”,效果如圖所示。任務(wù)分析Part.02任務(wù)分析1.創(chuàng)建Python程序ChineseNumber.py。2.創(chuàng)建元組按組存儲中文大寫數(shù)字。3.通過函數(shù)提示并接收用戶輸入的數(shù)字。4.通過循環(huán)遍歷,找到每位阿拉伯?dāng)?shù)字在元組中對應(yīng)的中文大寫數(shù)字。5.將阿拉伯?dāng)?shù)字轉(zhuǎn)成中文大寫數(shù)字,拼接到最終結(jié)果中。6.測試運(yùn)行程序ChineseNumber.py,并通過輸出結(jié)果檢驗(yàn)程序。本任務(wù)主要實(shí)現(xiàn)的是阿拉伯?dāng)?shù)字到中文大寫數(shù)字轉(zhuǎn)換,中文大寫數(shù)字是固定的十個(gè)數(shù)字,可以使用元組來按順序存放中文大寫數(shù)字,然后根據(jù)需要從元組中提取,具體的任務(wù)實(shí)施分析如下:知識準(zhǔn)備Part.03元組的創(chuàng)建與訪問01知識準(zhǔn)備創(chuàng)建元組01訪問元組元素025.7元組的創(chuàng)建與訪問在Python中,元組是一個(gè)不可變序列類型,通常用于存儲一組相關(guān)的值。元組中的元素可以是任何數(shù)據(jù)類型,并且元組一旦創(chuàng)建就不能被修改(即不能添加、刪除或更改元素)。元組的多個(gè)元素之間使用逗號分隔。元組的創(chuàng)建與訪問元組有兩種常用的創(chuàng)建方式:圓括號()和函數(shù)tuple(),如表所示。創(chuàng)建元組創(chuàng)建元組方式語法格式說明圓括號()創(chuàng)建不包含元素的空元組元素1,(元素1,)創(chuàng)建包含一個(gè)元素的元組,圓括號可以省略,逗號不能省略元素1,元素2,……(元素1,元素2,……)創(chuàng)建包含多個(gè)元素的元組,圓括號可以省略,逗號不能省略tuple()函數(shù)tuple()不傳參數(shù),創(chuàng)建空元組tuple(iterable)參數(shù)iterable是一個(gè)可以迭代的類型,比如字符串、列表等使用圓括號方式創(chuàng)建元組,示例代碼如下:創(chuàng)建元組程序運(yùn)行結(jié)果從上述代碼中可以看出,在使用圓括號創(chuàng)建一個(gè)元素的元組時(shí),如果省略掉逗號,則會生成一個(gè)字符串類型的數(shù)據(jù)。使用tuple()函數(shù)創(chuàng)建元組,示例代碼如下:創(chuàng)建元組程序運(yùn)行結(jié)果在使用函數(shù)tuple()創(chuàng)建元組時(shí),如果不傳入?yún)?shù),創(chuàng)建的是空元組;當(dāng)傳入字符串、列表等可以迭代的類型的參數(shù)時(shí),可以將其他類型的序列元素轉(zhuǎn)成元組的元素。訪問元組的元素有以下幾種方式:使用索引方式訪問元組元素;使用切片訪問元組元素;通過while和for循環(huán)遍歷訪問元組元素。訪問元組元素元組的訪問方式與列表基本相同。但需要注意元組是一個(gè)不可變序列,即元組的元素不可修改,試圖添加、修改和刪除元組的元素都會報(bào)錯(cuò)。訪問元組的元素,示例代碼如下:訪問元組元素程序運(yùn)行結(jié)果任務(wù)實(shí)現(xiàn)Part.04分析代碼01編寫代碼02任務(wù)實(shí)現(xiàn)分析代碼根據(jù)前面的分析可知,首先創(chuàng)建元組num_tuple保存所有的中文大寫數(shù)字,按照從零到玖的順序,對應(yīng)元素的索引0-9;再使用input()函數(shù)接收用戶輸入的阿拉伯?dāng)?shù)字串;接下來是數(shù)據(jù)處理,使用for循環(huán)獲取每位數(shù)字字符,將其轉(zhuǎn)換成整數(shù),取出該整數(shù)索引位置對應(yīng)的中文大寫數(shù)字,最后將所有的中文大寫數(shù)字連接起來,保存到字符串變量result中;最后輸出轉(zhuǎn)換后的中文大寫數(shù)字。(1)啟動PyCharm,新建Python項(xiàng)目Chapter05,新建Python文件ChineseNumber.Py

(2)在ChineseNumber文件的代碼編輯窗口,輸入如下代碼:編寫代碼程序運(yùn)行結(jié)果任務(wù)總結(jié)Part.05通過本單元的學(xué)習(xí),全面的了解了Python中元組的創(chuàng)建、元組元素的訪問方法。在使用時(shí)需要注意以下幾點(diǎn):創(chuàng)建一個(gè)元素的元組時(shí),元素后面的逗號不能省略,省略后創(chuàng)建的將不是元組。元組是一個(gè)不可變序列,即元組的元素不可修改,試圖添加、修改和刪除元組的元素都會報(bào)錯(cuò)。在Python中,列表和元組作為序列類型,具有一些共同的特性:有序性:列表和元組中的元素都是有序排列的,即每個(gè)元素都有一個(gè)明確的索引位置。索引從0開始,可以通過索引來訪問、檢索特定位置的元素。可迭代性:列表和元組都是可迭代的對象,可以使用for循環(huán)或其他迭代工具來遍歷它們的元素??汕衅裕簝烧叨贾С智衅僮?,允許獲取序列的一個(gè)子集。例如,可以使用my_list[1:4]或my_tuple[1:4]來獲取第2個(gè)到第4個(gè)元素(不包括索引為4的元素)??砂我忸愋偷脑兀毫斜砗驮M都可以存儲任意類型的Python對象,包括數(shù)字、字符串、布爾值、其他列表或元組,甚至是自定義對象。長度可獲取:可以使用內(nèi)置函數(shù)len()來獲取列表或元組的長度。可索引訪問:可以通過索引直接訪問列表或元組中的元素??汕短祝毫斜砗驮M都可以嵌套,即它們都可以包含其他列表或元組作為元素??勺鳛楹瘮?shù)的參數(shù):列表和元組都可以作為函數(shù)的參數(shù)進(jìn)行傳遞,也可以從函數(shù)中返回。盡管列表和元組有這些共同特性,但它們在使用上還有一些區(qū)別:可變性:列表是可變的,有一系列的方法可以改變其內(nèi)容,如append(),insert(),remove(),pop()等。而元組是不可變的,一旦元組被創(chuàng)建,就不能修改它的內(nèi)容。語法:列表使用方括號[]創(chuàng)建,而元組使用圓括號()創(chuàng)建。性能:由于元組是不可變的,因此元組在某些情況下比列表更加高效。元組的內(nèi)存占用通常比列表小,且在某些操作中可能更快。列表因?yàn)樾枰幚砜勺冃裕詴蓄~外的內(nèi)存開銷。用途:列表適用于需要?jiǎng)討B(tài)修改數(shù)據(jù)的場景,如數(shù)據(jù)收集、處理或需要頻繁變更元素的情況。元組適用于存儲不需要改變的數(shù)據(jù)集,如常量集、配置參數(shù)或用作字典的鍵。項(xiàng)目6字典與集合應(yīng)用知識目標(biāo)理解字典的基本概念01熟悉字典的定義和訪問方法02理解字典常見操作的區(qū)別03理解集合的基本概念04熟悉集合的定義和訪問方法05理解集合常見操作的區(qū)別06理解集合類型操作符的區(qū)別07能力目標(biāo)能夠熟練創(chuàng)建字典01能夠熟練訪問字典中的元素02能夠正確對字典元素進(jìn)行添加、修改與刪除03能夠熟練使用字典解決問題04能夠熟練創(chuàng)建集合05能夠熟練完成集合的基本操作06能夠正確使用集合類型的操作符07目錄菜單管理系統(tǒng)設(shè)計(jì)任務(wù)1自助點(diǎn)餐系統(tǒng)設(shè)計(jì)任務(wù)2任務(wù)提出01任務(wù)分析02知識準(zhǔn)備03任務(wù)1菜單管理系統(tǒng)設(shè)計(jì)任務(wù)實(shí)現(xiàn)04任務(wù)總結(jié)05任務(wù)提出Part.01提出任務(wù)編寫程序,設(shè)計(jì)一個(gè)簡單的菜單管理系統(tǒng),實(shí)現(xiàn)對餐廳菜單中的菜品名稱和價(jià)格信息進(jìn)行管理與維護(hù)。其主要功能包括查看菜單、添加菜品、刪除菜品、清空菜單、更改菜品價(jià)格、退出系統(tǒng)等,系統(tǒng)界面如圖所示。任務(wù)分析Part.02任務(wù)分析1.創(chuàng)建Python程序MenuManagement.py。2.完成系統(tǒng)操作界面顯示設(shè)計(jì)。3.創(chuàng)建一個(gè)字典用來存放菜品信息。4.通過input()函數(shù)接收用戶的選擇。5.使用字典的基本操作完成菜單管理功能。6.測試運(yùn)行程序,檢驗(yàn)程序各項(xiàng)功能。

本任務(wù)主要實(shí)現(xiàn)的是對菜單的管理,菜單中每一個(gè)菜品的信息都包含菜品名稱和價(jià)格,并且菜品名稱和價(jià)格存在一一對應(yīng)的映射關(guān)系,因此可以使用字典來存放菜品信息;再通過字典元素的添加、修改、刪除等操作實(shí)現(xiàn)對菜單中菜品的添加、修改、刪除。具體的任務(wù)實(shí)施分析如下:知識準(zhǔn)備Part.03字典的基本概念01字典的訪問02字典的基本操作03知識準(zhǔn)備字典的概述01字典的創(chuàng)建026.1字典的基本概念字典是由“鍵值對”組成的無序可變序列,字典中的每個(gè)元素都是一個(gè)“鍵值對”,類似于生活中常用的字典,可以利用“鍵”快速查找“值”。字典的每個(gè)鍵值對用冒號“:”分割,每對之間用逗號“,”分割,所有元素都包含在花括號“{}”中,格式如圖所示。字典的概述d={key1:value1,key2:value2}字典中的鍵一般是唯一的,如果重復(fù),最后一個(gè)重復(fù)的鍵值對會替換前面的,但值可以重復(fù)。如下圖所示代碼?!版I”是任意的不可變數(shù)據(jù),比如:整數(shù)、浮點(diǎn)數(shù)、字符串、元組,而“值”可以是任意的數(shù)據(jù)。字典的概述輸出結(jié)果:使用花括號創(chuàng)建字典:在花括號中添加使用逗號分隔的元素,每個(gè)元素由一組鍵值對組成,鍵值對中間通過冒號來進(jìn)行分隔。語法格式如下:字典的創(chuàng)建字典名={鍵1:值1,鍵2:值2,…,鍵n:值n}使用dict()函數(shù)創(chuàng)建字典:使用dict()函數(shù)創(chuàng)建字典時(shí),dict()函數(shù)的參數(shù)可以是關(guān)鍵字、映射類型對象、可迭代對象。語法格式如下:字典的創(chuàng)建字典名=dict(關(guān)鍵字)或字典名=dict(映射類型對象)或字典名=dict(可迭代對象)當(dāng)花括號“{}”,或者dict()函數(shù)中為空時(shí),會創(chuàng)建一個(gè)空字典。字典的創(chuàng)建輸出結(jié)果:直接訪問字典元素01通過函數(shù)訪問字典元素026.2字典的訪問在Python中,可以使用方括號“[]”直接訪問字典中某個(gè)存在的值,語法格式如下:直接訪問字典元素字典名[鍵]輸出結(jié)果:通過get()函數(shù)獲取值:如果無法確定想要訪問的鍵在字典中是否存在,可以使用get()函數(shù)的方式獲取值,語法格式如下:通過函數(shù)訪問字典元素字典名.get(鍵,[默認(rèn)值])語法格式說明如下:第一個(gè)參數(shù)為要查找的鍵第二個(gè)參數(shù)為鍵不存在時(shí)返回的默認(rèn)值get()函數(shù)會根據(jù)鍵在字典中查找對應(yīng)的值,如果未找到則會返回默認(rèn)值,當(dāng)未設(shè)定默認(rèn)值時(shí),返回None。通過items()函數(shù)獲取所有鍵值對:通過items()函數(shù)可以獲取字典中的所有鍵值對,該函數(shù)會以列表返回一個(gè)視圖對象,它包含一個(gè)元組列表,每個(gè)元組由相應(yīng)的鍵和值對組成,語法格式如下:通過函數(shù)訪問字典元素字典名.items()通過keys()函數(shù)獲取所有鍵:通過keys()函數(shù)可以獲取字典中的所有鍵,返回字典的鍵視圖,語法格式如下:通過函數(shù)訪問字典元素字典名.keys()通過values()函數(shù)獲取所有值:通過values()函數(shù)可以獲取字典中的所有值,返回字典的值視圖,語法格式如下:通過函數(shù)訪問字典元素字典名.values()通過函數(shù)訪問字典元素輸出結(jié)果:字典元素的添加與修改01字典與字典元素的刪除026.3字典的基本操作添加或更新單個(gè)字典元素,語法格式如下:字典元素的添加與修改字典名[鍵]=值在字典中添加鍵值對時(shí),如果要添加的鍵在字典中已存在,則會更新鍵對應(yīng)的值。使用update()函數(shù)可以將其他字典中的鍵值對添加到當(dāng)前字典中,語法格式如下:字典元素的添加與修改字典名.update(其他字典)若其他字典中的鍵在當(dāng)前字典中已存在,則會更新鍵對應(yīng)的值。輸出結(jié)果:字典元素的添加與修改使用del命令可以刪除整個(gè)字典,字典刪除后將不能再次訪問,語法格式如下:del字典名字典與字典元素的刪除del命令:del命令除了可以刪除整個(gè)字典外,也可以刪除字典中的某一個(gè)元素,語法格式如下:del字典名[鍵]字典與字典元素的刪除clear()函數(shù):clear()函數(shù)可以將字典中的所有元素刪除,保留一個(gè)空字典,與del命令不同,該字典能夠再次訪問,語法格式如下:字典名.clear()字典與字典元素的刪除pop()函數(shù):pop()函數(shù)可以隨機(jī)刪除字典中的某一個(gè)元素并返回其對應(yīng)的鍵值對,語法格式如下:字典名.pop(鍵[,默認(rèn)值])當(dāng)鍵在字典中不存在時(shí),pop()函數(shù)返回第二個(gè)參數(shù)默認(rèn)值,如果未設(shè)置默認(rèn)值,系統(tǒng)則會報(bào)錯(cuò)。字典與字典元素的刪除popitem()函數(shù):popitem()函數(shù)可以刪除字典中最后一對鍵值對,并將刪除的鍵值對返回,語法格式如下:字典名.popitem()字典與字典元素的刪除字典與字典元素的刪除輸出結(jié)果:任務(wù)實(shí)現(xiàn)Part.04分析代碼01編寫代碼02運(yùn)行代碼03任務(wù)實(shí)現(xiàn)分析代碼首先需要?jiǎng)?chuàng)建一個(gè)字典menu來存儲菜品信息,并使用循環(huán)語句保障程序持續(xù)運(yùn)行;然后可將菜單管理系統(tǒng)分為三個(gè)部分,選擇功能、實(shí)現(xiàn)功能與結(jié)束。分析代碼可使用print()函數(shù)提供一個(gè)系統(tǒng)界面,并使用input()函數(shù)選擇功能選擇功能根據(jù)用戶選擇的功能,通過字典的基本操作分別進(jìn)行查看菜單、添加菜品、刪除菜品、清空菜單、更改菜品價(jià)格以及退出操作。在查看菜單功能中,可通過for循環(huán)遍歷字典menu,并使用print()函數(shù)格式化打印輸出菜單的菜品名稱和價(jià)格;在添加和更改菜品功能中,可使用menu[name]=price添加或修改菜品價(jià)格;在刪除菜品功能中,可先通過notin判斷菜品名稱是否存在,然后再通過delmenu[name]命令刪除;在清空菜單功能中,可使用clear()函數(shù)清空菜單實(shí)現(xiàn)功能使用break跳出循環(huán)退出系統(tǒng)結(jié)束代碼思路:(1)啟動PyCharm,新建項(xiàng)目,位置在D:\Chapter06,新建Python文件MenuManagement.Py編寫代碼(2)首先進(jìn)行準(zhǔn)備工作及界面設(shè)計(jì),輸入如下代碼:(3)在輸入語句后,根據(jù)輸入內(nèi)容分別實(shí)現(xiàn)不同的功能,查看菜單功能:編寫代碼

添加菜品功能:編寫代碼

刪除菜品功能:編寫代碼

清空菜單功能:編寫代碼

更改菜品價(jià)格功能:編寫代碼

退出功能:編寫代碼(4)在程序最后,循環(huán)語句中添加判斷結(jié)束的流程,輸入如下語句:編寫代碼按快捷鍵Ctrl+Shift+F10運(yùn)行當(dāng)前程序,對所有功能進(jìn)行測試,部分功能如圖所示。運(yùn)行代碼任務(wù)總結(jié)Part.05通過本任務(wù)的學(xué)習(xí),掌握了復(fù)合數(shù)據(jù)類型字典的用法。字典是由“鍵值對”組成的無序可變序列,常應(yīng)用在以Key檢索Value的數(shù)據(jù)記錄場景。字典中鍵的特性:鍵的唯一性:字典中的鍵必須是唯一的。如果有重復(fù)的鍵,字典只會保留最后一個(gè)鍵值對。鍵的不可變性:字典的鍵必須是不可變的,可以使用數(shù)字、字符串或元組作為鍵,但不能使用列表或其他可變類型作為鍵。字典的特性:無序性:字典是無序的,不能通過索引來訪問元素??勺冃裕鹤值涫强勺兊模梢栽谶\(yùn)行時(shí)添加、修改或刪除鍵值對。但是,一旦一個(gè)鍵被添加到字典中,就不能再改變這個(gè)鍵,只能改變與這個(gè)鍵相關(guān)聯(lián)的值。嵌套:字典可以嵌套,即字典的值可以是另一個(gè)字典。但是,字典的鍵不能是另一個(gè)字典,這會導(dǎo)致類型錯(cuò)誤。直接訪問字典元素時(shí),訪問的鍵必須存在,否則程序就會報(bào)錯(cuò)。建議先判斷字典中是否有對應(yīng)的鍵再進(jìn)行訪問。通過函數(shù)訪問字典元素,則無需提前判斷是否存在。任務(wù)提出01任務(wù)分析02知識準(zhǔn)備03任務(wù)2自助點(diǎn)餐系統(tǒng)設(shè)計(jì)任務(wù)實(shí)現(xiàn)04任務(wù)總結(jié)05任務(wù)提出Part.01提出任務(wù)編寫程序,設(shè)計(jì)一個(gè)簡單的自助點(diǎn)餐系統(tǒng)。其主要功能包括查看已點(diǎn)菜品、添加菜品、刪除菜品、清空已點(diǎn)菜品、退出系統(tǒng)等,已點(diǎn)菜品中不能出現(xiàn)重復(fù)的菜品。,系統(tǒng)界面如圖所示。任務(wù)分析Part.02任務(wù)分析1.創(chuàng)建Python程序OrderingSystem.py。2.完成系統(tǒng)操作界面顯示設(shè)計(jì)。3.創(chuàng)建一個(gè)字典用來存放所有菜品。4.創(chuàng)建一個(gè)集合用來存放已點(diǎn)菜品名稱。5.通過input()函數(shù)接收用戶的選擇。6.使用集合的基本操作完成自助點(diǎn)餐功能。7.測試運(yùn)行程序,檢驗(yàn)程序各項(xiàng)功能。

本任務(wù)主要實(shí)現(xiàn)的是顧客點(diǎn)餐功能,可以使用字典存放所有菜品信息;對于已點(diǎn)菜品,由于要求菜品名稱不能重復(fù),因此可以使用集合來存放已點(diǎn)菜品名稱;最后通過集合的基本操作完成自助點(diǎn)餐系統(tǒng)的各項(xiàng)功能。具體的任務(wù)實(shí)施分析如下:知識準(zhǔn)備Part.03集合的基本概念01集合的基本操作02集合類型的操作符03知識準(zhǔn)備6.4集合的基本概念集合的概述01集合的類型02集合的創(chuàng)建03Python中的集合與數(shù)學(xué)的集合類似,它是一個(gè)由不同元素組成的無序序列。與列表和元組不同,集合不支持索引、切片等序列的操作。集合的概述四大發(fā)明10以內(nèi)的質(zhì)數(shù)2、3、5、7集合有以下幾個(gè)特點(diǎn):無序性:集合中保存的元素是沒有順序的多樣性:集合中可以保存多種數(shù)據(jù)類型的元素唯一性:集合中的元素都是唯一存在的,不會重復(fù)出現(xiàn)集合的概述Python中的集合有兩種類型:可變集合(set):能夠?qū)现械脑剡M(jìn)行修改不可變集合(frozenset):能夠?qū)现械脑剡M(jìn)行修改集合的類型使用花括號創(chuàng)建集合:在花括號中添加使用逗號分隔的元素,語法格式如下:集合的創(chuàng)建集合名={元素1,元素2,…,元素n}使用set()函數(shù)創(chuàng)建集合:通過給set()函數(shù)傳遞可迭代對象,可將對象轉(zhuǎn)換為集合。該對象可以是字符串、元組、列表等。此外,使用frozenset()函數(shù)可以創(chuàng)建一個(gè)不可變集合。語法格式如下:集合的創(chuàng)建集合名=set(iteration)或集合名=frozenset(iteration)iteration是一個(gè)可迭代對象,它可以是字符串、元組、列表等。集合的創(chuàng)建輸出結(jié)果:使用花括號{}創(chuàng)建集合時(shí),花括號{}中必須包含至少一個(gè)元素,當(dāng)花括號{}中沒有元素時(shí)會創(chuàng)建一個(gè)空字典,想要?jiǎng)?chuàng)建空集合可以使用set()函數(shù)的方式,如下所示代碼。集合的創(chuàng)建輸出結(jié)果:6.5集合的基本操作集合元素的添加01集合元素的刪除02集合元素的查找03通過add()函數(shù)添加元素:使用add()函數(shù)將一個(gè)元素添加到集合中,如果元素已存在,則不進(jìn)行任何操作。語法格式如下:集合元素的添加集合名.add(元素)通過update()函數(shù)添加元素:使用update()函數(shù)將原有集合中的元素和其他可迭代對象中的元素共同構(gòu)成新的集合來更新原有集合,其參數(shù)可以是列表、元組、字典等。語法格式如下:集合元素的添加集合名.update(iteration)集合元素的添加輸出結(jié)果:通過remove()函數(shù)刪除元素:使用remove()函數(shù)刪除集合中的指定元素,如果元素不存在,則會發(fā)生錯(cuò)誤。語法格式如下:集合元素的刪除集合名.remove(元素)通過discard()函數(shù)刪除元素:使用discard()函數(shù)刪除集合中的指定元素,如果元素不存在,不做任何操作,也不會報(bào)錯(cuò)。語法格式如下:集合元素的刪除集合名.discard(元素)通過pop()函數(shù)刪除元素:使用pop()函數(shù)可以隨機(jī)刪除集合中的一個(gè)元素并返回該元素。語法格式如下:集合元素的刪除集合名.pop()通過clear()函數(shù)刪除元素:使用clear()函數(shù)可以清除集合中所有元素。語法格式如下:集合元素的刪除集合名.clear()集合元素的刪除輸出結(jié)果:輸出結(jié)果:Python集合中元素是無序的,因此無法通過下標(biāo)等形式獲取,但python提供了in、notin操作符可以用于判斷元素在某集合中是否存在。集合元素的查找False6.6集合類型的操作符基礎(chǔ)操作符01關(guān)系操作符02增強(qiáng)操作符03集合類型的基礎(chǔ)操作有四種,與數(shù)學(xué)中的集合運(yùn)算類似,分別是交集、并集、差集以及對稱差集運(yùn)算。若有兩個(gè)集合S、T,集合S中包含元素1、2、3,集合T中包含元素2、3、4,那么兩個(gè)集合四種基礎(chǔ)操作的關(guān)系如圖所示?;A(chǔ)操作符輸出結(jié)果:交集操作交集操作是指取出兩個(gè)集合中的公共元素形成一個(gè)新集合,可以通過“&”操作符或intersection()函數(shù)實(shí)現(xiàn)?;A(chǔ)操作符{2,3}{2,3}輸出結(jié)果:并集操作并集操作是指取出兩個(gè)集合中的所有元素形成一個(gè)新集合,可以通過“|”操作符或union()函數(shù)實(shí)現(xiàn)?;A(chǔ)操作符{1,2,3,4}{1,2,3,4}輸出結(jié)果:差集操作差集操作是指在一個(gè)集合中取出另一集合沒有的元素形成一個(gè)新集合,可以通過“-”操作符或difference()函數(shù)實(shí)現(xiàn)?;A(chǔ)操作符{1}{1}輸出結(jié)果:對稱差集操作對稱差集操作是指取出兩個(gè)集合中只屬于自身集合的元素形成一個(gè)新集合,可以通過“^”操作符或symmetric_difference()函數(shù)實(shí)現(xiàn)?;A(chǔ)操作符{1,4}{1,4}在Python中使用“<=”、“<”、“>=”

溫馨提示

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

最新文檔

評論

0/150

提交評論