版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第五章
Python程序設(shè)計(jì)基礎(chǔ)Python程序設(shè)計(jì)基礎(chǔ)
隨著大數(shù)據(jù)時(shí)代的來(lái)臨,數(shù)據(jù)的采集和處理已成為關(guān)鍵。Python以其簡(jiǎn)潔易學(xué)、移植性強(qiáng)、可擴(kuò)展、程序庫(kù)豐富和管理工具完善而受到了程序開(kāi)發(fā)者的追捧。作為一種面向?qū)ο蟮母呒?jí)語(yǔ)言,Python支持多線程調(diào)度,對(duì)于海量數(shù)據(jù)的采取和處理有獨(dú)特的優(yōu)勢(shì),是一種適用于大數(shù)據(jù)開(kāi)發(fā)和分析的重要語(yǔ)言,目前,Python已廣泛應(yīng)用于云計(jì)算、人工智能、數(shù)據(jù)分析等眾多領(lǐng)域。學(xué)習(xí)目標(biāo)1.了解Python基礎(chǔ)語(yǔ)法知識(shí)。012.掌握元組、列表、等差數(shù)列、字典的用法。023.掌握單分支、兩分支和多分支結(jié)構(gòu)的用法。034.掌握f(shuō)or循環(huán)和while循環(huán)的用法。045.掌握函數(shù)的定義和調(diào)用方法。056.能綜合運(yùn)用多種數(shù)據(jù)類型和多種結(jié)構(gòu)組合解決實(shí)際問(wèn)題。06Python簡(jiǎn)介5.15.1Python簡(jiǎn)介
Python是一種功能強(qiáng)大的高級(jí)語(yǔ)言,由GuddovanRossum設(shè)計(jì),它基于ABC語(yǔ)言并吸收了C、C++、Algol-68、SmallTalk、Unixshell和其他腳本語(yǔ)言的優(yōu)點(diǎn),是結(jié)合解釋性、編譯性、互動(dòng)性并面向?qū)ο蟮哪_本語(yǔ)Python具有簡(jiǎn)潔易學(xué)、移植性強(qiáng)、可擴(kuò)展、程序庫(kù)豐富和管理工具完善等特點(diǎn)。Python語(yǔ)言結(jié)構(gòu)簡(jiǎn)單,保留字少,適合編程初學(xué)者學(xué)習(xí);Python是一種開(kāi)源語(yǔ)言,用戶可免費(fèi)的查看、下載、修改、發(fā)布及使用;Python作為一門(mén)解釋型的語(yǔ)言,它天生具有跨平臺(tái)的特征,只要為平臺(tái)提供了相應(yīng)的Python解釋器,Python就可以在該平臺(tái)上運(yùn)行;可以把Python嵌入C/C++程序,從而向程序用戶提供腳本功能;Python的可擴(kuò)展性體現(xiàn)在它的模塊上,Python具有腳本語(yǔ)言中最豐富和強(qiáng)大的程序庫(kù)。情景描述:小明準(zhǔn)備開(kāi)始學(xué)習(xí)程序設(shè)計(jì),聽(tīng)說(shuō)Python簡(jiǎn)單易學(xué),準(zhǔn)備安裝Python集成開(kāi)發(fā)環(huán)境,并運(yùn)行第一個(gè)Python程序技術(shù)分析:本次任務(wù)需要掌握以下技能:1.下載并安裝Python。2.使用EDLE編寫(xiě)Python程序。5.1.1
【任務(wù)1】運(yùn)行第一個(gè)Python程序任務(wù)描述與分析任務(wù)分解:分析上面的工作情境,我們需要完成以下任務(wù):1.下載Python安裝文件。2.安裝Python。3.啟動(dòng)Python。4.編寫(xiě)print。知識(shí)準(zhǔn)備:Python安裝包里集成了開(kāi)發(fā)和學(xué)習(xí)環(huán)境(IntergatedDevelopmentandLearningEnvironment,IDLE),安裝IDLE后可方便實(shí)現(xiàn)程序的編譯、鏈接、執(zhí)行等功能。任務(wù)描述與分析5.1.1
【任務(wù)1】運(yùn)行第一個(gè)Python程序操作步驟步驟1:百度搜索’python官網(wǎng)’,打開(kāi)Python官網(wǎng)下載網(wǎng)址,下載Python安裝文件,如圖5-1所示。圖5-1Python下載頁(yè)面任務(wù)實(shí)現(xiàn)5.1.1
【任務(wù)1】運(yùn)行第一個(gè)Python程序logo步驟2:下載并安裝Python。Python有適用于Windows、Linux、macOS的不同版本,本章選用Windows的3.8.6版。下載完成后,雙擊文件,如下圖所示,選中“addPython3.8toPATH”復(fù)選框,選擇“InstallNow”選項(xiàng)開(kāi)始安裝。如圖5-2所示。圖5-2Python安裝任務(wù)實(shí)現(xiàn)5.1.1
【任務(wù)1】運(yùn)行第一個(gè)Python程序步驟3:運(yùn)行PythonIDLE。從開(kāi)始菜單執(zhí)行PythonIDLE,運(yùn)行界面如圖5-3所示。圖5-3Python運(yùn)行界面其中>>>是命令提示符,等待輸入命令。任務(wù)實(shí)現(xiàn)5.1.1
【任務(wù)1】運(yùn)行第一個(gè)Python程序步驟4:輸入命令print(‘helloworld’)。運(yùn)行效果如圖5-4所示。圖5-4使用print函數(shù)輸入命令print(‘helloworld’)后,PythonIDLE會(huì)交互式反饋運(yùn)行結(jié)果,print會(huì)輸出括號(hào)里的內(nèi)容。任務(wù)實(shí)現(xiàn)5.1.1
【任務(wù)1】運(yùn)行第一個(gè)Python程序想一想想一想:(1)編譯器編譯后的代碼,程序員是否還能看得懂?(2)都有哪些編程語(yǔ)言,他們又對(duì)應(yīng)哪些編譯器?5.1.1
【任務(wù)1】運(yùn)行第一個(gè)Python程序
Python是一門(mén)簡(jiǎn)單易學(xué)的高級(jí)語(yǔ)言,其借鑒吸收了ABC語(yǔ)言、C語(yǔ)言等眾多編程語(yǔ)言的優(yōu)點(diǎn),在編程規(guī)則部分與這些語(yǔ)言相似。初學(xué)者需了解Python的固定語(yǔ)法要求,掌握Python的編程規(guī)則。Python的基礎(chǔ)語(yǔ)法知識(shí)主要包括:注釋、代碼縮進(jìn)、保留字與標(biāo)識(shí)符、變量、轉(zhuǎn)義字符、字符串的基本操作和Python常用的操作運(yùn)算符。5.1.2
Python基礎(chǔ)語(yǔ)法知識(shí)單行注釋以“#”開(kāi)頭,注釋行不會(huì)被機(jī)器編譯執(zhí)行,只是起到提示作用,不參與程序運(yùn)行。如圖5-5所示。圖5-5單行注釋5.1Python簡(jiǎn)介1.注釋5.1Python簡(jiǎn)介多行注釋在注釋行前和末尾分別使用三個(gè)單引號(hào),其本質(zhì)是將多行表示為一個(gè)字符串,如圖5-6。Python代碼簡(jiǎn)潔,無(wú)需用花括號(hào)({})來(lái)標(biāo)識(shí)程序段,但同一程序段必須保持相同的縮進(jìn),如圖5-7是正確的縮進(jìn)形式。圖5-7正確的縮進(jìn)形式5.1Python簡(jiǎn)介2.代碼縮進(jìn)錯(cuò)誤的縮進(jìn)會(huì)導(dǎo)致程序無(wú)法編譯執(zhí)行,如圖5-8所示。圖中有兩處縮進(jìn)錯(cuò)誤,print必須和第一行s對(duì)齊,else必須和if對(duì)齊。5.1Python簡(jiǎn)介保留字又稱為關(guān)鍵字,是Python中已經(jīng)被賦予特殊含義的單詞,如保留字“if”用于流程控制,可使用kwlist函數(shù)查看Python的所有保留字,如圖5-9所示。圖5-9Python保留字標(biāo)識(shí)符是Python中用于為變量、函數(shù)、類、對(duì)象、模塊等命名的字符串,一個(gè)合法的標(biāo)識(shí)符必須符合以下條件。5.1Python簡(jiǎn)介3.保留字與標(biāo)識(shí)符5.1Python簡(jiǎn)介Python保留字標(biāo)識(shí)符是Python中用于為變量、函數(shù)、類、對(duì)象、模塊等命名的字符串,一個(gè)合法的標(biāo)識(shí)符必須符合以下條件。
標(biāo)識(shí)符只能由字母、數(shù)字或下劃線組成。
標(biāo)識(shí)符應(yīng)以字母開(kāi)頭,不能以數(shù)字開(kāi)頭,以下劃線開(kāi)頭的標(biāo)識(shí)符具有特殊含義,如表示類中的屬性或方法。
標(biāo)識(shí)符不能使用保留字。以下幾個(gè)是合法標(biāo)識(shí)符。a_1,aB123,
myName,ab1C_而下面這幾個(gè)是非法標(biāo)識(shí)符。a*b4(不符合規(guī)則1,標(biāo)識(shí)符不能由*組成)3d_M(不符合規(guī)則2,標(biāo)識(shí)符以數(shù)字開(kāi)頭)else(不符合規(guī)則3,else是保留字,標(biāo)識(shí)符中不能存在保留字)此外還需注意,標(biāo)識(shí)符區(qū)分大小寫(xiě),如變量A和變量a會(huì)被認(rèn)為是不同的變量。4.變量Python變量根據(jù)取值不同可分為6種標(biāo)準(zhǔn)數(shù)據(jù)類型:數(shù)字、字符串、列表、元組、字典和集合。其中數(shù)字型變量和字符串型變量屬于基本型變量,列表、元組、字典和集合型變量屬于復(fù)合數(shù)據(jù)類型變量。變量在創(chuàng)建時(shí)無(wú)需聲明,但必須賦值,Python能根據(jù)變量取值自動(dòng)識(shí)別數(shù)據(jù)類型。變量使用“=”進(jìn)行賦值,如a=3,將3的值賦予變量a。5.1Python簡(jiǎn)介圖5-10相同取值的變量指向同一內(nèi)存地址當(dāng)創(chuàng)建變量時(shí),系統(tǒng)會(huì)根據(jù)變量的不同取值分配不同的存儲(chǔ)空間,如x=3,y=3,則變量x,y在內(nèi)存中指向同一個(gè)地址,使用id函數(shù)可查看變量的內(nèi)存地址。如圖5-10所示。5.1Python簡(jiǎn)介(1)數(shù)字型變量圖5-11變量取值不同指向內(nèi)存位置不同在以上兩個(gè)例子中,若繼續(xù)改變a的取值,使其與x相同,如a=3,則a指向的內(nèi)存地址將和x相同,因?yàn)閍=x=3。5.1Python簡(jiǎn)介若變量的值不同,如a=5,b=6,則變量a,b在內(nèi)存中指向不同地址。如圖5-11所示。數(shù)字型變量分為整型(int)、浮點(diǎn)型(float)、布爾型(bool)及復(fù)數(shù)型(complex)四種,其中布爾型變量取值可以是True或False,并且布爾型變量可以和整型變量間相互轉(zhuǎn)換,True等價(jià)于1,F(xiàn)alse等價(jià)于0,所有的非0數(shù)也可以看作是True。復(fù)數(shù)型變量用于存儲(chǔ)復(fù)數(shù),如a=1.2+0.5j。(1)數(shù)字型變量5.1Python簡(jiǎn)介不同的數(shù)據(jù)類型可以相互轉(zhuǎn)換,Python提供了int、float、bool函數(shù)進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換,如圖5-12所示。int函數(shù)可以將浮點(diǎn)數(shù)進(jìn)行取整運(yùn)算后,轉(zhuǎn)換為整數(shù),float函數(shù)可以將整數(shù)變成浮點(diǎn)數(shù),bool函數(shù)可以將非0數(shù)轉(zhuǎn)換為T(mén)rue,將0轉(zhuǎn)換為False。(2)字符串型變量字符串型變量取值為字符串,字符串的表示可以用單引號(hào)(’)、雙引號(hào)(’’)或三引號(hào)(’’’)來(lái)表示,其中三引號(hào)多用于多行字符串的表示。如圖5-13所示。圖5-13字符串的表示5.1Python簡(jiǎn)介當(dāng)字符串內(nèi)出現(xiàn)單引號(hào)’、雙引號(hào)’’,需要用轉(zhuǎn)義字符來(lái)表示。如要表示字符串I’mastudent時(shí),若直接表示為’I’mastudent’就會(huì)報(bào)錯(cuò),原因是語(yǔ)句單引號(hào)的匹配會(huì)出錯(cuò),語(yǔ)句被解析為’I’及后面的mastudent’部分,正確的表示是在’I’后加轉(zhuǎn)義字符’\’,表示為’I\’mastudent’,如圖5-14所示。圖5-14轉(zhuǎn)義字符5.1Python簡(jiǎn)介5.轉(zhuǎn)義字符字符串的基本操作包括定位字符,截取字符段及字符串連接等。定位字符首先需了解字符串索引的概念,如定義字符串變量s=’helloworld’,這里第一個(gè)字符’h’的位置從0開(kāi)始計(jì)數(shù),即s[0]=’h’,s[1]=’e’,…1],s[9]==,即,索引位置從0開(kāi)始,到n-1結(jié)束,其中n為字符串長(zhǎng)度。注意,不能通過(guò)索引賦值形式直接改變字符串內(nèi)的字符值,如直接賦值s[0]=’b’,Python不支持這種形式的用法。截取字符段可以s[i:j]的形式來(lái)表示,i為起始索引,j為結(jié)束索引(字符串不包含s[j]),如在上段定義的s中,s[2:5]=’llo’。若字符段持續(xù)到字符串末尾,則可以表示為s[i:]的形式,結(jié)束索引可以不寫(xiě),如s[2:]=’lloworld’。5.1Python簡(jiǎn)介6.字符串基本操作字符串的連接可以通過(guò)加號(hào)(+)來(lái)連接,如st=s+’welcometopython’。字符串基本操作如圖5-15所示。圖5-15字符串基本操作5.1Python簡(jiǎn)介常用的算術(shù)運(yùn)算符有加(+)、減(-),乘(*),除(/),此外,還有求余(%),乘方(**)?,F(xiàn)以以下幾個(gè)計(jì)算為例:3+30-5*6/234%104**3,運(yùn)算結(jié)果如圖5-16所示。圖5-16算術(shù)運(yùn)算在第一個(gè)混合運(yùn)算中,由于式子里有除法,結(jié)算結(jié)果自動(dòng)轉(zhuǎn)化為浮點(diǎn)數(shù),第2個(gè)式子的含義是求34除以10的余數(shù),第三個(gè)式子的含義是求4的3次方。5.1Python簡(jiǎn)介7.Python常用操作運(yùn)算符(1)算術(shù)運(yùn)算符5.1Python簡(jiǎn)介7.Python常用操作運(yùn)算符(2)邏輯運(yùn)算符邏輯運(yùn)算符包括and、or、not,其含義如下。and,與運(yùn)算,xandy,若x為0或False,返回x值,否則,返回y值or,或運(yùn)算,xory,若x非0或?yàn)門(mén)rue,返回x,否則返回y值not,非運(yùn)算,notx,若x為0或False,返回True,否則,返回False?!緦?shí)例1】輸入5個(gè)整數(shù),求平均數(shù)此案例中,待輸入的5個(gè)整數(shù)分別用變量a,b,c,d,e表示,平均數(shù)用avg表示。如圖5-18所示。圖5-18求平均數(shù)5.1Python簡(jiǎn)介8.實(shí)例【實(shí)例2】判斷表達(dá)式的值判斷not(5>8)and(3>5)and(7>3)or(3<7)的值。如圖5-19所示。圖5-19判斷表達(dá)式的值此案例中,需認(rèn)真分析結(jié)果生成過(guò)程,5>8值為False,not(5>8)值為T(mén)rue,3>5值為False,7>3值為T(mén)rue,3<7值為False,因此原式=TrueandFalseandTrueorTrue,結(jié)果為T(mén)rue。Python常用數(shù)據(jù)類型5.2
雖然Python數(shù)據(jù)類型不需要顯式聲明,但其數(shù)據(jù)在內(nèi)存中存儲(chǔ)時(shí)仍然有具體的類型。前面一節(jié)介紹了Python數(shù)據(jù)類型的數(shù)字型與字符串型,Python基本的數(shù)據(jù)類型遠(yuǎn)不止這兩類。Python基本數(shù)據(jù)類型可以分為數(shù)字(Number)、字符串(String)、邏輯類(Boolean)、元組(Tuple)、列表(List)、字典(Dictionary)和集合(Set)。對(duì)于初學(xué)者來(lái)說(shuō),切勿貪大求全,掌握其中常用類型的使用方式是一個(gè)較好的切入點(diǎn)。列表、元組和字典是三種常用的數(shù)據(jù)類型。5.2Python常用數(shù)據(jù)類型情景描述:列表是序列類的一種重要類型,小明要對(duì)一批數(shù)據(jù)進(jìn)行處理,準(zhǔn)備用列表來(lái)對(duì)數(shù)據(jù)進(jìn)行增、刪、改、查工作。技術(shù)分析:本次任務(wù)需要掌握對(duì)列表的增、刪、改、操操作技能。任務(wù)描述與分析5.2.1
【【任務(wù)2】認(rèn)識(shí)列表任務(wù)分解:分析上面的工作情境,我們需要完成以下任務(wù):1.掌握如何創(chuàng)建列表2.掌握如何修改列表元素3.掌握如何修改列表元素4.掌握如何查詢列表元素5.了解等差數(shù)列任務(wù)描述與分析5.2.1
【【任務(wù)2】認(rèn)識(shí)列表步驟1:創(chuàng)建了一個(gè)等差數(shù)列,并使用切片運(yùn)算符(:)取列表中下標(biāo)為2到下標(biāo)為4之間的所有元素。如圖5-20所示。圖5-20等差數(shù)列切片列表使用方括號(hào)([])聲明。li[2]表示列表中下標(biāo)為2的元素,即是3,而li[2:4]表示取出li[2]到li[4](不包含li[4])中所有的元素,既[3,4]。5.2.1
【【任務(wù)2】認(rèn)識(shí)列表任務(wù)實(shí)現(xiàn)步驟2:列表對(duì)象使用append方法來(lái)增加元素,只需向append傳入元素值即可再列表末尾增加一個(gè)元素。如圖5-21所示。圖5-21列表增加元素5.2.1
【【任務(wù)2】認(rèn)識(shí)列表任務(wù)實(shí)現(xiàn)若要再指定位置增加元素,可使用insert方法指定插入元素的位置索引和元素值。如圖5-22所示。其中,3是位置索引,即插入到第4個(gè)位置,6為插入的元素。5.2.1
【【任務(wù)2】認(rèn)識(shí)列表任務(wù)實(shí)現(xiàn)步驟3:刪除列表中的元素。列表對(duì)象使用pop方法來(lái)刪除元素,傳入列表位置索引刪除指定位置的元素。如圖5-23所示。5.2.1
【【任務(wù)2】認(rèn)識(shí)列表任務(wù)實(shí)現(xiàn)刪除列表位置索引為4的元素,即將元素“7”從列表中刪除。也可用remove方法刪除指定元素,傳入列表指定元素即可刪除。如圖5-24所示。5.2.1
【【任務(wù)2】認(rèn)識(shí)列表任務(wù)實(shí)現(xiàn)步驟4:修改列表元素。列表是可以修改的,使用索引對(duì)元素賦值即可修改元素的值。如圖5-25所示。5.2.1
【【任務(wù)2】認(rèn)識(shí)列表任務(wù)實(shí)現(xiàn)步驟5:查詢列表元素。查詢列表元素可使用index方法,傳入元素來(lái)返回第1次出現(xiàn)元素的索引位置。所元素不存在,則會(huì)出現(xiàn)錯(cuò)誤提示。如圖5-26所示。5.2.1
【【任務(wù)2】認(rèn)識(shí)列表任務(wù)實(shí)現(xiàn)若要判斷某元素是否存在列表中,可使用“元素in列表對(duì)象”進(jìn)行判斷,若存在,返回值為T(mén)rue,否則返回False。如圖5-27所示。5.2.1
【【任務(wù)2】認(rèn)識(shí)列表任務(wù)實(shí)現(xiàn)步驟6:等差數(shù)列創(chuàng)建0到9的等差數(shù)列,如圖5-28所示。圖5-28創(chuàng)建等差數(shù)列設(shè)置等差數(shù)列公差為2,如圖5-29所示5.2.1
【【任務(wù)2】認(rèn)識(shí)列表任務(wù)實(shí)現(xiàn)
Python中為了簡(jiǎn)化代碼邏輯,實(shí)現(xiàn)了等差數(shù)列類型數(shù)據(jù)。常用的方式有range(n)與range(i,j),前者表示0到n-1的等差數(shù)列,后者表示i到j(luò)-1的等差數(shù)列。此外等差數(shù)列型數(shù)據(jù)還能設(shè)置公差(step)。5.2.1
【【任務(wù)2】認(rèn)識(shí)列表任務(wù)實(shí)現(xiàn)想一想:(1)數(shù)組與列表的相同點(diǎn)與不同點(diǎn)?(2)列表能直接用作數(shù)據(jù)庫(kù)使用嗎?5.2.1
【【任務(wù)2】認(rèn)識(shí)列表想一想5.2.2【任務(wù)3】認(rèn)識(shí)元組任務(wù)描述與分析情境描述:小明要對(duì)一批重要數(shù)據(jù)進(jìn)行保存,并在需要進(jìn)行查詢,擬采用元組來(lái)進(jìn)行處理。技術(shù)分析:本次任務(wù)需要掌握使用元組的技能。0102任務(wù)分解:1.創(chuàng)建元組。2.查詢?cè)M元素。步驟1:元組可使用圓括?。ǎ﹣?lái)創(chuàng)建,元素間用逗號(hào)分隔,再用圓括弧將有序數(shù)列括起來(lái),即可創(chuàng)建元組。定義元組時(shí),圓括弧也可以省略不寫(xiě)。如圖5-30所示。圖5-30創(chuàng)建元組元組與列表類似,也是序列數(shù)據(jù)的集合,但與列表不同的是,元組不可改變的,一旦創(chuàng)建就不能對(duì)元組元素值進(jìn)行復(fù)制修改,也不能進(jìn)行增加和刪除等操作。5.2.2【任務(wù)3】認(rèn)識(shí)元組任務(wù)實(shí)現(xiàn)步驟2:元組提取元素值的方法與列表類似,通過(guò)索引可提取元組元素值。如圖5-31所示。圖5-31在元組中提取元素值注意:索引位置從0開(kāi)始。5.2.2【任務(wù)3】認(rèn)識(shí)元組任務(wù)實(shí)現(xiàn)步驟3:查詢?cè)M元素查詢?cè)M元素可使用index方法,傳入元素來(lái)返回第1次出現(xiàn)元素的索引位置。所元素不存在,則會(huì)出現(xiàn)錯(cuò)誤提示。如圖5-32所示。5.2.2【任務(wù)3】認(rèn)識(shí)元組任務(wù)實(shí)現(xiàn)若要判斷某元素是否存在元組中,可使用“元素in列表對(duì)象”進(jìn)行判斷,若存在,返回值為T(mén)rue,否則返回False。如圖5-33所示。5.2.2【任務(wù)3】認(rèn)識(shí)元組任務(wù)實(shí)現(xiàn)想一想:(1)元組與列表的相同點(diǎn)與不同點(diǎn)?(2)如何遍歷一個(gè)固定類型元組?5.2.2【任務(wù)3】認(rèn)識(shí)元組想一想5.2.3【任務(wù)4】認(rèn)識(shí)字典任務(wù)描述與分析情境描述:小明要對(duì)一批具有映射關(guān)系的數(shù)據(jù)進(jìn)行處理,包括值的增、刪、改、查操作。技術(shù)分析:本次任務(wù)需要掌握字典的增、刪、改、查操作技能。AEDFBC1.創(chuàng)建字典。2.增加鍵值對(duì)。4.修改元素值。3.刪除鍵值對(duì)。5.查詢?cè)刂?。分析上面的工作情境,我們需要完成以下任?wù):5.2.3【任務(wù)4】認(rèn)識(shí)字典5.2.3【任務(wù)4】認(rèn)識(shí)字典任務(wù)描述與分析知識(shí)準(zhǔn)備:字典使用鍵值對(duì)來(lái)表示一個(gè)元素,字典元素建立了從鍵到值的映射關(guān)系。鍵在字典中必須唯一,并且建立后不可修改。5.2.3【任務(wù)4】認(rèn)識(shí)字典任務(wù)實(shí)現(xiàn)步驟1:創(chuàng)建字典。字典創(chuàng)建的格式為:{key1:value1,key2:value2,key3:value3不可修。為學(xué)生創(chuàng)建一個(gè)字典的實(shí)例如圖5-34所示。圖5-34使用字典類數(shù)據(jù)保存信息5.2.3【任務(wù)4】認(rèn)識(shí)字典任務(wù)實(shí)現(xiàn)步驟2:提取鍵名對(duì)應(yīng)的值。字典采用‘字典名[鍵名]’的方式來(lái)提取元素值。如圖5-35所示,提取關(guān)鍵字age的鍵值。5.2.3【任務(wù)4】認(rèn)識(shí)字典任務(wù)實(shí)現(xiàn)步驟3:增加字典元素。增加字典元素采用為新鍵賦值的方式來(lái)添加.為學(xué)生增加一個(gè)鍵值對(duì)”country:China”可表示如圖5-36所示。5.2.3【任務(wù)4】認(rèn)識(shí)字典任務(wù)實(shí)現(xiàn)步驟4:刪除字典元素。刪除字典元素用pop方法,傳入鍵值,即可刪除對(duì)應(yīng)的元素。代碼如圖5-37所示。5.2.3【任務(wù)4】認(rèn)識(shí)字典任務(wù)實(shí)現(xiàn)步驟5:修改字典元素。修改字典元素采用為直接賦值法,為對(duì)應(yīng)的鍵賦值即可改變?cè)刂?。如圖5-38所示,通過(guò)為鍵score賦值修改學(xué)生成績(jī)?yōu)?2。5.2.3【任務(wù)4】認(rèn)識(shí)字典任務(wù)實(shí)現(xiàn)步驟6:查詢字典中的鍵。若判斷某鍵是否在字典中,可用‘鍵in字典名’來(lái)判斷。如圖5-39所示。若要查看所有的鍵,則可用方法keys來(lái)查詢。5.2.3【任務(wù)4】認(rèn)識(shí)字典任務(wù)實(shí)現(xiàn)查詢字典student中的鍵值如圖5-40所示。想一想:(1)元組與列表的相同點(diǎn)與不同點(diǎn)?(2)如何遍歷一個(gè)固定類型元組?5.2.3【任務(wù)4】認(rèn)識(shí)字典想一想Python程序流程控制5.4
順序、選擇和循環(huán)是Python的三種基本結(jié)構(gòu),其中順序結(jié)構(gòu)是最簡(jiǎn)單的程序結(jié)構(gòu),只要按照解決問(wèn)題的順序?qū)懗鱿鄳?yīng)的語(yǔ)句就行,它的執(zhí)行順序是自上而下,依次執(zhí)行。本節(jié)重點(diǎn)講解選擇和循環(huán)結(jié)構(gòu),通過(guò)采用選擇或循環(huán)結(jié)構(gòu)編程解決中國(guó)古代的幾個(gè)經(jīng)典數(shù)學(xué)問(wèn)題,如雞兔同籠、百雞問(wèn)題、韓信點(diǎn)兵等。5.4Python程序流程控制5.4.1選擇結(jié)構(gòu)選擇結(jié)構(gòu)又稱為分支結(jié)構(gòu),通過(guò)條件判斷控制程序走向不同分支,選擇結(jié)構(gòu)可分為單分支,兩分支和多分支。5.4.1選擇結(jié)構(gòu)1.單分支結(jié)構(gòu)If是選擇結(jié)構(gòu)的基本保留字,對(duì)于單分支結(jié)構(gòu),其用法格式為:if布爾表達(dá)式:語(yǔ)句注意表達(dá)式右邊的冒號(hào)不能缺少,此程序段的含義是:若表達(dá)式為真,則執(zhí)行語(yǔ)句,否則,則不執(zhí)行,程序運(yùn)行例子如圖5-41所示,當(dāng)考試成績(jī)x大于或等于60時(shí),輸出‘pass’,而當(dāng)x小于60時(shí),不做處理。5.4.1選擇結(jié)構(gòu)兩分支結(jié)構(gòu)的用法格式為:if布爾表達(dá)式1:語(yǔ)句1else:語(yǔ)句2注意,else后的冒號(hào)不能缺少,程序段的含義是,若表達(dá)式1成立,則執(zhí)行語(yǔ)句1,否則執(zhí)行表達(dá)式2,程序運(yùn)行例子如圖5-42所示,當(dāng)x大于或等于60時(shí),輸出’pass’,而當(dāng)x小于60時(shí),輸出’fail’。2.雙分支結(jié)構(gòu)5.4.1選擇結(jié)構(gòu)多分支結(jié)構(gòu)的用法格式為:if布爾表達(dá)式1:語(yǔ)句1elif布爾表達(dá)式2:語(yǔ)句2
達(dá)式elif布爾表達(dá)式n-1:語(yǔ)句n-1else:語(yǔ)句n3.多分支結(jié)構(gòu)程序段的含義是,若表達(dá)式1成立,則執(zhí)行語(yǔ)句1,其它語(yǔ)句不再執(zhí)行,若表達(dá)式1不成立而表達(dá)式2成立,則執(zhí)行語(yǔ)句2,其它語(yǔ)句不再執(zhí)行,以此類推,若前n-1個(gè)表達(dá)式都不成立,則執(zhí)行語(yǔ)句n。程序運(yùn)行例子如圖5-43所示,程序段的含義是若x大于0,輸出“正數(shù)”,若x等于0,輸出“0”,若x小于0,輸出“負(fù)數(shù)”。圖中顯示了x=-1時(shí)的輸出結(jié)果。圖5-43多分支結(jié)構(gòu)5.4.1選擇結(jié)構(gòu)3.多分支結(jié)構(gòu)for循環(huán)依次取出序列中的每一個(gè)元素進(jìn)行處理,常用的序列有字符串、列表、元組等。其基本格式為:for變量in序列:語(yǔ)句5.4.2循環(huán)結(jié)構(gòu)1.for結(jié)構(gòu)5.4.2循環(huán)結(jié)構(gòu)1.for結(jié)構(gòu)下面演示用for循環(huán)計(jì)算1+2+3+4+5+6+7+8+9+10。如圖5-44所示,首先將1-10存入列表中L中,賦初值s=0,利用for循環(huán)將列表中的每個(gè)數(shù)取出并加入到s中。圖5-44使用列表作為計(jì)數(shù)器的for循環(huán)若數(shù)據(jù)量很大,則列表存儲(chǔ)數(shù)輸入量大,此時(shí),可以使用range函數(shù)生成數(shù)據(jù)序列,用for配合range函數(shù)進(jìn)行循環(huán)控制。如求和s=1+2+3+……+100,程序運(yùn)行結(jié)果如圖5-45所示。5.4.2循環(huán)結(jié)構(gòu)1.for結(jié)構(gòu)while循環(huán)基本格式如下:while布爾表達(dá)式:語(yǔ)句當(dāng)布爾表達(dá)式為真時(shí),執(zhí)行語(yǔ)句,語(yǔ)句執(zhí)行完后,再次進(jìn)行布爾表達(dá)式計(jì)算,若為真,則再次執(zhí)行語(yǔ)句,重復(fù)以上過(guò)程,直到布爾表達(dá)式值為假時(shí)退出。改用while循環(huán)實(shí)現(xiàn)s=1+2+3+……+100,程序運(yùn)行例子如圖5-46所示。圖5-46while循環(huán)實(shí)現(xiàn)1-100求和5.4.2循環(huán)結(jié)構(gòu)2.while循環(huán)5.4.2循環(huán)結(jié)構(gòu)2.while循環(huán)值得注意的是,在while循環(huán)語(yǔ)句中,一定要加入改變布爾表達(dá)式中的變量值的語(yǔ)句,否則,容易產(chǎn)生死循環(huán),如上例中,若不寫(xiě)i=i+1,則表達(dá)式的值始終為真,將產(chǎn)生死循環(huán)。3.break和continue(1)break當(dāng)循環(huán)語(yǔ)句執(zhí)行的過(guò)程中,若已達(dá)到理想效果或找到編程所需要的答案時(shí),可使用break從當(dāng)前循環(huán)中立刻退出。如計(jì)算5,6,7,8,9的最小公倍數(shù),如圖5-47所示。5.4.2循環(huán)結(jié)構(gòu)3.break和continue若去掉break,將算出10000以內(nèi)的所有公倍數(shù)2520,5040和7560。(2)continuecontinue的作用是跳出本次循環(huán),進(jìn)入下一輪循環(huán),在當(dāng)前判斷不符合條件時(shí),提前結(jié)束其他無(wú)效語(yǔ)句的執(zhí)行,進(jìn)入到下一輪循環(huán)判斷中,如用continue求10以內(nèi)3的倍數(shù),如圖5-48所示。5.4.2循環(huán)結(jié)構(gòu)3.break和continue5.4.3【任務(wù)5】雞兔同籠任務(wù)描述與分析情景描述:小明學(xué)了這么久編程,希望解決經(jīng)典的雞兔同籠問(wèn)題:在大約一千五百年前,我國(guó)古代數(shù)學(xué)名著《孫子算經(jīng)》中記載了一道數(shù)學(xué)趣題,這就是著名的“雞兔同籠”問(wèn)題。“今有雞兔同籠,上有三十五頭,下有九十四足,問(wèn)雞兔各幾何?”技術(shù)分析:本次任務(wù)需要掌握使用for循環(huán)解決實(shí)際問(wèn)題的技能。任務(wù)分解分析上面的工作情境,我們需要完成以下任務(wù):1.for循環(huán)。2.range函數(shù)。3.if判斷。知識(shí)準(zhǔn)備:for循環(huán)是一種簡(jiǎn)單的窮舉算法,依次取出序列中的每一個(gè)元素進(jìn)行處理
。
不通順,請(qǐng)修改。任務(wù)實(shí)現(xiàn)5.4.3【任務(wù)5】雞兔同籠步驟1:使用range生成從1到n的等差數(shù)列,并用for循環(huán)進(jìn)行遍歷。foriinrange(1,35):注意:range(n)不包含n,i是雞的數(shù)量。步驟2:判斷腳是否滿足條件。foriinrange(1,35):if(2*i+(35-i)*4==94):注意:if判斷中使用‘==’而不是賦值符‘=’。想一想(1)此處是使用列表好還是使用元組更好?(2)如何進(jìn)行從1到n的遍歷?5.4.3【任務(wù)5】雞兔同籠Python函數(shù)5.5
Python使用函數(shù)提高代碼效率,減少冗余代碼。函數(shù)是封裝起來(lái)的一段代碼,用戶可以根據(jù)函數(shù)定義好的格式傳入一些數(shù)據(jù)進(jìn)程序,程序?qū)?shù)據(jù)進(jìn)行處理后返回結(jié)果。
函數(shù)從數(shù)學(xué)的角度看,是輸入到輸出的映射;從計(jì)算機(jī)程序的角度看,是將不連續(xù)且重復(fù)的代碼使用一句話代替的編程方式。簡(jiǎn)單的來(lái)說(shuō),函數(shù)需要先聲明、再調(diào)用。5.5Python函數(shù)Python中函數(shù)定義使用“def”關(guān)鍵字其格式如下:def函數(shù)名(參數(shù)列表):函數(shù)體return返回值5.5.1Python函數(shù)簡(jiǎn)介1.定義函數(shù)5.5.1Python函數(shù)簡(jiǎn)介1.定義函數(shù)如圖5-51所示,使用函數(shù)實(shí)現(xiàn)數(shù)學(xué)中的一元二次方程f(x)=3x2+2x+1。函數(shù)名字是f,參數(shù)列表只有一個(gè)參數(shù)為x,返回值是3x2+2x+1的計(jì)算結(jié)果。如圖5-50所示。圖5-51定義函數(shù)5.5.1Python函數(shù)簡(jiǎn)介2.調(diào)用函數(shù)向函數(shù)的參數(shù)列表中傳入值,即可完成函數(shù)的調(diào)用,例如將2作為參數(shù)傳遞
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 護(hù)理部工作計(jì)劃匯編
- 小學(xué)一年級(jí)下學(xué)期工作計(jì)劃
- 區(qū)2025年度計(jì)劃生育工作計(jì)劃2
- 分廠第十六個(gè)百日安全無(wú)事故活動(dòng)計(jì)劃
- 《外科常見(jiàn)急腹癥》課件
- 《水暖理論知識(shí)培訓(xùn)》課件
- 《氨基酸之亮氨酸》課件
- 合同 第三方費(fèi)用 報(bào)銷(xiāo)條款
- 鐵路培訓(xùn)合同
- 2025年阿克蘇貨運(yùn)從業(yè)資格證模擬考試題目
- 2024年天然氣管道施工環(huán)保勞務(wù)合同范本3篇
- 重癥監(jiān)護(hù)室搶救制度
- 統(tǒng)編版(2024)七年級(jí)上冊(cè)道德與法治第四單元學(xué)情調(diào)研測(cè)試卷(含答案)
- 小學(xué)語(yǔ)文骨干教師專題講座《自由閱讀-開(kāi)啟快樂(lè)的讀書(shū)之門(mén)》
- C語(yǔ)言程序設(shè)計(jì)-001-國(guó)開(kāi)機(jī)考復(fù)習(xí)資料
- 華為經(jīng)營(yíng)管理-華為激勵(lì)機(jī)制(6版)
- 2024年社會(huì)工作者-社會(huì)綜合能力考試歷年真題
- 人力資源的降本增效操作
- 村級(jí)財(cái)務(wù)課件教學(xué)課件
- 干股股份合作簡(jiǎn)單協(xié)議書(shū)范本(35篇)
- 中央2024年中國(guó)合格評(píng)定國(guó)家認(rèn)可中心招聘筆試歷年參考題庫(kù)解題思路附帶答案詳解
評(píng)論
0/150
提交評(píng)論