Python基礎(chǔ)案例教程(微課版)全套課件(可編輯)_第1頁(yè)
Python基礎(chǔ)案例教程(微課版)全套課件(可編輯)_第2頁(yè)
Python基礎(chǔ)案例教程(微課版)全套課件(可編輯)_第3頁(yè)
Python基礎(chǔ)案例教程(微課版)全套課件(可編輯)_第4頁(yè)
Python基礎(chǔ)案例教程(微課版)全套課件(可編輯)_第5頁(yè)
已閱讀5頁(yè),還剩404頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

《Python基礎(chǔ)案例教程》(微課版)第1章Python編程基礎(chǔ)梁祥第1章Python編程基礎(chǔ)Python是一門非常優(yōu)秀的計(jì)算機(jī)編程語(yǔ)言,因使用界面簡(jiǎn)潔,編寫程序過程簡(jiǎn)便,學(xué)習(xí)起來(lái)容易上手,當(dāng)前已成為主流的編程語(yǔ)言。本章主要對(duì)Python編程基礎(chǔ)進(jìn)行介紹,結(jié)合具體案例從零到有感受Python編程簡(jiǎn)單易學(xué)、功能強(qiáng)大的特點(diǎn)。通過閱讀已有案例程序的注釋,讀懂程序代碼,并嘗試修改代碼,實(shí)現(xiàn)案例新功能。引用生活的案例,分析案例流程,了解算法基礎(chǔ)知識(shí),為Python編程的后續(xù)章節(jié)學(xué)習(xí)打好基礎(chǔ)。教學(xué)內(nèi)容1.1快速入門1.2數(shù)據(jù)運(yùn)算1.3編程算法目錄CONTENTS1.1.1開始編寫程序1.1.2遵守基本規(guī)范1.2.1標(biāo)識(shí)符和保留字1.2.2常量和變量1.2.3運(yùn)算符和表達(dá)式1.3.1了解算法1.3.2算法描述1.1快速入門本課知識(shí)點(diǎn)編寫Python程序,需用Python自帶的編輯器IDLE。腳本式多行編程是Python的主要編程方法,它可以用文件的方式把程序代碼保存下來(lái),方便以后隨時(shí)修改與調(diào)用,特別適合程序編寫。

Python語(yǔ)法簡(jiǎn)單易上手,最適合青少年高效掌握編程思維Python語(yǔ)言具有簡(jiǎn)潔、易讀、易操作特征,可以快速呈現(xiàn)效果,利于激發(fā)青少年學(xué)習(xí)動(dòng)力和信心;Python被稱為膠水語(yǔ)言,具有擴(kuò)展性,能夠把其他語(yǔ)言制作的模塊輕松地進(jìn)行鏈接。1.1.1開始編寫程序本課知識(shí)點(diǎn)Python其結(jié)構(gòu)簡(jiǎn)單,有定義明確的語(yǔ)言,非常適合編程者啟蒙學(xué)習(xí)。本節(jié)精選一個(gè)代碼簡(jiǎn)潔、運(yùn)行效果顯示的案例,從零開始,一步一步示范講解,讓你了解Python完整的編程過程,從而開啟你的編程之旅。1.1.1開始編寫程序本課知識(shí)點(diǎn)在生活中經(jīng)常使用排序,通過編寫一小段Python程序,讓該段程序能把亂序的數(shù)字,有序排列。如圖所示,可根據(jù)需要,將一組亂序的數(shù)字“2,5,0,8,3,7,4,6,9,1”,有序排列輸出。1.1.1開始編寫程序本課知識(shí)點(diǎn)使用Python編寫排序程序要學(xué)習(xí)很多知識(shí),本案例講解的重點(diǎn)是讓學(xué)習(xí)者感受Python語(yǔ)言簡(jiǎn)潔代碼、容易上手、編程快捷的特點(diǎn)。從進(jìn)入Python語(yǔ)言的編輯環(huán)境開始,分別介紹新建、輸入、保存、運(yùn)行等關(guān)鍵環(huán)節(jié)的操作過程。結(jié)合案例讓學(xué)習(xí)者體驗(yàn)將一組亂序數(shù)字,通過編程后輸出一組有序數(shù)字的過程,體驗(yàn)Python語(yǔ)言的神奇魅力。1.1.1開始編寫程序本課知識(shí)點(diǎn)(1)編輯器IDLE的編程方式編寫程序代碼雖然可以使用記事本、Word等字處理軟件,但是不能進(jìn)行程序的編譯和運(yùn)行。而Python編輯器IDLE不僅具有記事本、Word等字處理軟件的文字編輯功能,還具有程序的編譯和運(yùn)行功能。如圖所示,編輯器IDLE編程分交互式逐行編程與腳本式多行編程兩種方式。1.1.1開始編寫程序本課知識(shí)點(diǎn)(2)認(rèn)識(shí)案例程序的代碼在Python編輯器中編程,主要是輸入程序代碼。本排列案例中有4條代碼,每條代碼的功能解釋如下所示。在Python中“#”后面的文字,就是對(duì)左側(cè)代碼的解釋。1.1.1開始編寫程序本課知識(shí)點(diǎn)算法分析第一步:定義一組亂序的數(shù)據(jù);第二步:輸出顯示第一步所定義的數(shù)據(jù);第三步:結(jié)這組數(shù)據(jù)執(zhí)行排序操作;第四步:輸出顯示排序后的有序數(shù)據(jù)。1.1.1開始編寫程序本課知識(shí)點(diǎn)

Python有很多版本,這是一種在不斷發(fā)展與完善的語(yǔ)言。以Python3.8.2版為例,其打開方式為:選擇“開始”→“所有程序”→“Python3.8”→“IDEL(Python3.832-bit)”命令,打開如圖所示的交互式逐行編程界面。1.1.1開始編寫程序本課知識(shí)點(diǎn)選擇“File”→“NowFile”命令,新建文件,即進(jìn)入如圖1.4所示的腳本式多行編程界面。該界面與“記事本”軟件窗口界面相類似,有“標(biāo)題欄”“菜單欄”“程序編輯區(qū)”“狀態(tài)欄”等幾個(gè)部分組成。1.1.1開始編寫程序本課知識(shí)點(diǎn)輸入代碼Python中的輸入代碼的方式同“記事本”軟件輸入相似。如圖所示操作,輸入以下代碼。輸入的代碼時(shí)要在英文半角狀態(tài)下,需注意代碼中英文字母的大小寫。1.1.1開始編寫程序本課知識(shí)點(diǎn)保存文件按圖所示操作,選擇保存路徑后,以“案例1排序好簡(jiǎn)便.py”為程序名保存文件。Python腳本式多行編程所編寫的文件擴(kuò)展名為“*.py”,文件名的命名同記事本、Word等軟件命名一樣,可以由中文、英文、數(shù)字等組成。1.1.1開始編寫程序本課知識(shí)點(diǎn)運(yùn)行程序程序編寫完成后,需運(yùn)行程序的。按圖所示操作,查看“案例1排序好簡(jiǎn)便.py”程序的執(zhí)行結(jié)果。1.1.1開始編寫程序本課知識(shí)點(diǎn)

調(diào)試程序在Python編程時(shí),有時(shí)不小心輸入錯(cuò)誤代碼,運(yùn)行程序時(shí)Python就會(huì)自動(dòng)提示出錯(cuò)的位置與原因。如圖所示,如prin(s)少寫一個(gè)“t”,系統(tǒng)就會(huì)出現(xiàn)提示,指出程序出錯(cuò)的位置。1.1.1開始編寫程序本課知識(shí)點(diǎn)在計(jì)算機(jī)中安裝Python學(xué)習(xí)Python語(yǔ)言編程,需下載并安裝Python。安裝過程與一般軟件安排方式相似,可需根據(jù)安裝界面提示進(jìn)行操作即可。需注意的是,初學(xué)者如果不會(huì)對(duì)編程環(huán)境進(jìn)行專業(yè)設(shè)置,可按圖所示操作,將“AddPython3.8toPATH”復(fù)選框勾選上,Python就會(huì)自動(dòng)設(shè)置安裝。1.1.1開始編寫程序本課知識(shí)點(diǎn)

設(shè)置Python編程環(huán)境Python可對(duì)編輯器IDLE的編程環(huán)境進(jìn)行設(shè)置。選擇“Options”→“ConfigureIDLE”命令,按圖所示操作,可以設(shè)置編程環(huán)境中的字體、字號(hào)、顏色等參數(shù)。1.1.1開始編寫程序本課知識(shí)點(diǎn)計(jì)算機(jī)的所有操作都是按照人們預(yù)先編好的程序進(jìn)行。若需計(jì)算機(jī)編程解決問題時(shí),就必須把具體問題轉(zhuǎn)化為計(jì)算機(jī)可以執(zhí)行的程序。在問題提出之后,從分析問題、設(shè)計(jì)算法、編寫程序,一直到運(yùn)行調(diào)試程序,整個(gè)過程稱為程序設(shè)計(jì),簡(jiǎn)稱編程。例如:讓本排序案例再添加一個(gè)從大小到排序的功能,程序編寫流程如圖所示。1.1.1開始編寫程序本課知識(shí)點(diǎn)編寫程序總會(huì)出現(xiàn)這樣那樣的問題,需要進(jìn)行修改與調(diào)試。修改調(diào)試程序無(wú)論是交互式逐行編程還是腳本式多行編程,在輸入命令后,如果出現(xiàn)紅色英文提示,說(shuō)明給Python下達(dá)了錯(cuò)誤的命令,Python就反饋提示信息。如圖所示,此時(shí)需根據(jù)提示進(jìn)行修改,直到修改正確,這個(gè)過程稱之為修改調(diào)試程序。1.1.2遵守基本規(guī)范本課知識(shí)點(diǎn)

Python代碼講究?jī)?yōu)雅、簡(jiǎn)潔。在編寫Python代碼時(shí),遵循良好的編碼規(guī)范,可以有效地提高代碼的可讀性,降低出錯(cuò)機(jī)率和維護(hù)難度。同時(shí),符合編程規(guī)范的程序也有助于別人閱讀與再次修改開發(fā)。1.1.2遵守基本規(guī)范本課知識(shí)點(diǎn)(1)行編寫程序如同寫文章一樣,一段程序是由多條不同功能的代碼組成的。在Python程序中,為了使編寫的程序便于閱讀需要標(biāo)注行號(hào)。在調(diào)試程序時(shí)根據(jù)行號(hào),能快速定位錯(cuò)誤語(yǔ)句位置。按圖所示操作,設(shè)置顯示編輯器IDLE中每句代碼的行號(hào)。1.1.2遵守基本規(guī)范本課知識(shí)點(diǎn)一般一條語(yǔ)句為一行,但有時(shí)也可以將多條語(yǔ)句寫成一行。將多條語(yǔ)句寫成一行時(shí),每條語(yǔ)句后面使用“;”隔開。以下程序與“案例1排序好簡(jiǎn)便”執(zhí)行的效果是一樣的。但在編程時(shí),這種表示不利于后期的閱讀與修改,所以一般不推薦這樣寫。1.1.2遵守基本規(guī)范本課知識(shí)點(diǎn)在編程中還有一些語(yǔ)句,為了某種功能的實(shí)現(xiàn),須分多行寫。如下程序就是為了輸出特定的顯示效果,一條顯示輸出語(yǔ)句寫成了3行。所以在具體編程時(shí),也要根據(jù)實(shí)際需要,不可機(jī)械地理解一條語(yǔ)句必須寫成一行。1.1.2遵守基本規(guī)范本課知識(shí)點(diǎn)(2)縮進(jìn)寫文章時(shí),一般每段之前要空兩格,我們將這種形式稱為縮進(jìn)。在Python編程中,一些條件語(yǔ)句、循環(huán)語(yǔ)句的結(jié)構(gòu)體內(nèi),所寫的代碼必須縮進(jìn)??s進(jìn)可以使用空格鍵,也可以使用Tab鍵。圖所示,使用代碼縮進(jìn)的注意事項(xiàng)。1.1.2遵守基本規(guī)范本課知識(shí)點(diǎn)縮進(jìn)是Python的一個(gè)特性,同一層級(jí)的代碼要求相同縮進(jìn),下一層級(jí)的代碼相對(duì)于上一層級(jí)的代碼再進(jìn)行縮進(jìn)。如果應(yīng)該縮進(jìn)的地方,沒有縮進(jìn),執(zhí)行程序時(shí)會(huì)自動(dòng)報(bào)錯(cuò)。如下所示(條件語(yǔ)句代碼雖還沒有學(xué)習(xí),此處只需要簡(jiǎn)單理解即可)。正因?yàn)榭s進(jìn)這個(gè)特性,使得寫出來(lái)的代碼條理清晰,可讀性強(qiáng)。1.1.2遵守基本規(guī)范本課知識(shí)點(diǎn)1.1.2遵守基本規(guī)范本課知識(shí)點(diǎn)想一想,如果將程序可判斷的數(shù)值范圍改為100,如何修改程序呢?其實(shí)只要認(rèn)真讀懂程序與程序的注釋,只需將代碼中10改為100,即可。此外為了便于讀懂程序,還可以將變量y改為num,將變量x改為random_num,參考代碼如下所示。1.1.2遵守基本規(guī)范本課知識(shí)點(diǎn)注釋注釋是對(duì)程序代碼起到說(shuō)明與解釋的作用,做好代碼的注釋,是規(guī)范編程的一個(gè)好習(xí)慣。注釋在程序運(yùn)行時(shí)不會(huì)被執(zhí)行。(已修改)在Python中的注釋,分為單行注釋和多行注釋。單行注釋在Python中,使用“#”作為單行注釋的符號(hào)。從符號(hào)“#”開始直到換行為止,其后面所有的內(nèi)容都作為注釋的內(nèi)容。多行注釋在Python中,并沒有單獨(dú)的多行注釋標(biāo)記,而是將包含在一對(duì)三引號(hào)(’’’……’’’)或者(”””……”””)之間。1.1.2遵守基本規(guī)范本課知識(shí)點(diǎn)編寫規(guī)范在編寫Python代碼時(shí),遵循良好的編碼規(guī)范,可以有效地提高代碼的可讀性,降低出錯(cuò)幾率和維護(hù)難度。如圖所示,編寫規(guī)范要注意的事項(xiàng)。1.1.2遵守基本規(guī)范本課知識(shí)點(diǎn)編寫規(guī)范的具體應(yīng)用過程也是一個(gè)熟能生巧的過程,以下僅舉例2個(gè)對(duì)比實(shí)例,在后續(xù)的章節(jié)中還可以進(jìn)一步學(xué)習(xí)。1.1.2遵守基本規(guī)范本課知識(shí)點(diǎn)掌握編程學(xué)習(xí)方法1.1.2遵守基本規(guī)范本課知識(shí)點(diǎn)養(yǎng)成良好編程習(xí)慣1.2數(shù)據(jù)運(yùn)算本課知識(shí)點(diǎn)任何一種程序設(shè)計(jì)語(yǔ)言,都離不開數(shù)據(jù)運(yùn)算,數(shù)據(jù)運(yùn)算是編程代碼的基礎(chǔ)組成部分。使用Python編寫程序,需要處理各種數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行運(yùn)算,并將處理的結(jié)果輸出。Python數(shù)據(jù)運(yùn)算涉及到標(biāo)識(shí)符和保留字、常量與變量、運(yùn)算符與表達(dá)式等。標(biāo)識(shí)符類似于人的名字,它主要用來(lái)標(biāo)識(shí)后面所學(xué)習(xí)到的變量、函數(shù)、類、模塊和對(duì)象的名稱。保留字是Python語(yǔ)言中已經(jīng)被賦予特定意義的單詞,這些單詞不可以作為變量、函數(shù)、類、模塊和對(duì)象的名稱。1.2.1標(biāo)識(shí)符和保留字本課知識(shí)點(diǎn)(2)保留字保留字是Python語(yǔ)言中一些已經(jīng)被賦予特定意義的單詞。在Python中所有保留字是區(qū)分字母大小寫的。例如“for”是保留字,但“FOR”可以做標(biāo)識(shí)符。Python語(yǔ)言中的保留字如表所示。(1)標(biāo)識(shí)符Python語(yǔ)言標(biāo)識(shí)符命名規(guī)則如下:標(biāo)識(shí)符的組成由字母、下劃線“_”和數(shù)字組成。第一個(gè)字符不能是數(shù)字。字母一般為A~Z和a~z。即1area和area%是非法的標(biāo)識(shí)符。區(qū)分字母的大小寫如area與Area是兩個(gè)不同的標(biāo)識(shí)符。不能使用保留字在Python中保留字有特殊的用處,不可以做標(biāo)識(shí)符。1.2.1標(biāo)識(shí)符和保留字本課知識(shí)點(diǎn)已知三角形面積等于三角形的底乘以三角形的高再除以2。編寫程序,讓計(jì)算機(jī)接收輸入的任意一個(gè)三角形底與三角形高的長(zhǎng)度數(shù)值,最后輸出該三角形的面積。1.2.1標(biāo)識(shí)符和保留字本課知識(shí)點(diǎn)查看保留字Python中的保留字可以在IDLE中輸入兩行代碼進(jìn)行查看,具體操作如圖所示。1.2.1標(biāo)識(shí)符和保留字本課知識(shí)點(diǎn)標(biāo)識(shí)符與保留字的應(yīng)用在Python中標(biāo)識(shí)符與保留字的應(yīng)用需注意以下技巧。保留字區(qū)分大小寫在Python中保留字大小寫是固定的,如“False”是保留字,而“false”不是保留字,是標(biāo)識(shí)符。標(biāo)識(shí)符可以作為變量名,而保留字不可以。標(biāo)識(shí)符命名規(guī)范下面分別列出正確的標(biāo)識(shí)符命名與非法的標(biāo)識(shí)符命名。1.2.2常量和變量本課知識(shí)點(diǎn)已知大圓的半徑比小圓的半徑大20,請(qǐng)輸入小圓的半徑數(shù)值,計(jì)算圓環(huán)面積。要求編寫程序,輸入小圓的半徑,并根據(jù)已知條件,計(jì)算并輸出圓環(huán)的面積(π=3.14)。1.2.2常量和變量本課知識(shí)點(diǎn)在程序運(yùn)行過程中,值不發(fā)生變化的數(shù)據(jù)為常量,所有的常數(shù)都是常量,例如π、常數(shù)e的值等。計(jì)算圓環(huán)的面積,通常只需知道大圓的面積與小圓的面積,兩者相減即可求出圓環(huán)的面積。本案例通過編寫程序,輸入小圓的半徑r,再根據(jù)已知條件,大圓的半徑為r+20,再根據(jù)圓面積公式,即可求出圓環(huán)的面積。案例中,小圓半徑r,大圓的半徑r+20,大圓與小圓的面積s1、s2,圓環(huán)面積s均為變量。而π值是不變的,是3.14,即π是常量。1.2.2常量和變量本課知識(shí)點(diǎn)(1)常量在程序運(yùn)行過程中,常量里存放的數(shù)據(jù)不發(fā)生改變,也就是常量一旦初始化后,就不能修改的固定值。常量屬于標(biāo)識(shí)符,因此在命名時(shí)需符合標(biāo)識(shí)符的命名標(biāo)準(zhǔn),一般要求全部大寫字母或者第一個(gè)字母大寫,這樣閱讀程序時(shí),一看便知其是一個(gè)常量。如:PI=3.14或Pi=3.142。(2)變量Python語(yǔ)言沒有專門定義變量的語(yǔ)句,而是通過給變量賦值的方式完成變量的定義。如s2=Pi*r*r;r=r+20;s1=Pi*r*r;s=s1-s2,都會(huì)因輸入的小圓半徑r的值變化而發(fā)生變化。變量屬于標(biāo)識(shí)符,因此在給變量命名時(shí)要符合標(biāo)識(shí)符的命名規(guī)則,并且最好所有字母全部小寫,與常量有所區(qū)別。1.2.2常量和變量本課知識(shí)點(diǎn)

賦值符號(hào)“=”應(yīng)用Python常量與變量的賦值都是通過“=”實(shí)現(xiàn),如:num=123、name='Python'、xb=True、PI=3.14159。在Python中,每個(gè)常量與變量在使用之前都必須賦值,常量與變量只有在賦值之后才會(huì)被創(chuàng)建。使用“=”可以給常量與變量賦值,=左邊是常量名或變量名,=右邊是常量或變量的值,如圖所示。1.2.2常量和變量本課知識(shí)點(diǎn)在Python中,標(biāo)識(shí)符包含常量與變量。常量與變量有很多相似的地方,具體情況如圖所示。1.2.3運(yùn)算符和表達(dá)式本課知識(shí)點(diǎn)計(jì)算機(jī)編程時(shí)需對(duì)數(shù)據(jù)進(jìn)行各種運(yùn)算,數(shù)據(jù)運(yùn)算就需要用到加減乘除等多種運(yùn)算符。在Python中,將數(shù)據(jù)和運(yùn)算符連接到一起的式子稱為表達(dá)式。(1)算術(shù)運(yùn)算符算術(shù)運(yùn)算符也即數(shù)學(xué)運(yùn)算符,用來(lái)對(duì)數(shù)字進(jìn)行數(shù)學(xué)運(yùn)算,比如加減乘除。表1.2列出了Python支持的算術(shù)運(yùn)算符。1.2.3運(yùn)算符和表達(dá)式本課知識(shí)點(diǎn)

(2)常用表達(dá)式的運(yùn)算優(yōu)先級(jí)Python中運(yùn)算符主要有算術(shù)運(yùn)算符、邏輯運(yùn)算符、關(guān)系運(yùn)算符、賦值運(yùn)算符、位運(yùn)算符五種。表1.3列出了這些運(yùn)算符的優(yōu)先級(jí)順序,順序號(hào)越小優(yōu)先級(jí)越高。1.2.3運(yùn)算符和表達(dá)式本課知識(shí)點(diǎn)海倫公式是利用三角形的三條邊長(zhǎng)來(lái)求取三角形面積,如圖1.28所示。你能編寫程序,從鍵盤輸入三條邊的邊長(zhǎng),計(jì)算出△ABC的面積嗎?1.2.3運(yùn)算符和表達(dá)式本課知識(shí)點(diǎn)

1.比較運(yùn)算符比較運(yùn)算符用來(lái)進(jìn)行比較運(yùn)算,比如大于、小于、等于。所有比較運(yùn)算符返回1表示真,返回0表示假,分別用True和False表示。設(shè)x=5,y=8,表1.4列出了Python比較運(yùn)算符應(yīng)用的結(jié)果。1.2.3運(yùn)算符和表達(dá)式本課知識(shí)點(diǎn)

2.邏輯運(yùn)算符邏輯運(yùn)算符可以用來(lái)進(jìn)行邏輯運(yùn)算,比如“與”“或”“非”。設(shè)x=1,y=0,表1.5列出了Python邏輯運(yùn)算符應(yīng)用的結(jié)果。1.3編程算法本課知識(shí)點(diǎn)計(jì)算機(jī)能完成各種任務(wù),需要靠人給它指令。通常完成一個(gè)任務(wù)要許多條指令,這些指令按一定規(guī)則放在一起就構(gòu)成一個(gè)程序。算法對(duì)于程序設(shè)計(jì)至關(guān)重要,編程首先要確定算法。當(dāng)了解什么是算法后,還要考慮如何準(zhǔn)確地、具體地描述算法。1.3.1了解算法本課知識(shí)點(diǎn)在生活和學(xué)習(xí)中,經(jīng)常會(huì)用到算法知識(shí),只是很少意識(shí)到。如日常生活,新生報(bào)到的流程、去銀行自動(dòng)取款機(jī)存取款,去商場(chǎng)選購(gòu)貨物到付款等,在去完成這些事情時(shí),發(fā)生的一系列活動(dòng)實(shí)際上就包含著算法。因此,從廣義上講,算法是為解決一類特定問題而采取的確定的、有限的步驟。打掃地面衛(wèi)生是一項(xiàng)基本生活技能,如何快速高效的掃干凈地面也是一門學(xué)問。如圖所示,所示是人工掃地的流程,請(qǐng)通過人工掃地流程,了解什么是算法,以及算法應(yīng)具有哪些特征,同時(shí)掌握算法的描述方法。1.3.1了解算法本課知識(shí)點(diǎn)(1)算法是指解決問題或完成任務(wù)的一系列步驟。解決的問題不僅僅指?jìng)鹘y(tǒng)意義上的計(jì)算任務(wù),也可以是完成各種事務(wù)的處理。如洗一件衣服、燒制一道菜等,完成這些事情的任務(wù)流程都可以看作算法。但這些算法的執(zhí)行者往往是人,而不是計(jì)算機(jī)。設(shè)計(jì)算法是解決問題的核心,解決問題的過程,也是實(shí)現(xiàn)算法的過程。(2)掃地機(jī)器掃地機(jī)器的機(jī)身為無(wú)線機(jī)器,以圓盤型為主。使用充電電池運(yùn)作,操作方式以遙控器、或是機(jī)器上的操作面板。一般能設(shè)定時(shí)間預(yù)約打掃,自行充電。前方有設(shè)置感應(yīng)器,可偵測(cè)障礙物,如碰到墻壁或其他障礙物,會(huì)自行轉(zhuǎn)彎,并依每間房間可進(jìn)行不同的設(shè)定,而走不同的路線,并規(guī)劃清掃地區(qū)。1.3.1了解算法本課知識(shí)點(diǎn)

1.算法的重要性智能時(shí)代,算法已經(jīng)廣泛應(yīng)用各個(gè)領(lǐng)域,專家通過分析行業(yè)的運(yùn)行規(guī)律,界定問題,有針對(duì)性建立模型、設(shè)計(jì)算法,并應(yīng)用信息技術(shù)實(shí)現(xiàn)算法,從而創(chuàng)造出新的產(chǎn)品,催生出新的產(chǎn)業(yè)。如高層樓房電梯按照一定的算法響應(yīng)用戶請(qǐng)求,合理停靠到相應(yīng)的樓層;鐵路12306網(wǎng)絡(luò)訂票系統(tǒng)按照一定的算法設(shè)置訂票模式,高效服務(wù)用戶。還有目前的智慧交通、智慧醫(yī)療等都離不開算法的應(yīng)用。學(xué)習(xí)一些算法知識(shí),了解算法的基本設(shè)計(jì)方法,可以深入理解身邊數(shù)字化工具的特征,能夠利用算法思想解決實(shí)際問題,提高學(xué)習(xí)和生活效率,更好地融入信息社會(huì)。1.3.1了解算法本課知識(shí)點(diǎn)3.算法三要素如圖所示,用計(jì)算機(jī)編程解決問題,本質(zhì)上是以“數(shù)據(jù)運(yùn)算”的方式來(lái)實(shí)現(xiàn)的。各種“運(yùn)算”順序的調(diào)控需要借助“控制轉(zhuǎn)移”來(lái)實(shí)現(xiàn)。1.3.2算法描述本課知識(shí)點(diǎn)在了解什么是算法后,還需要準(zhǔn)確、具體地將它描述出來(lái),才能便于編寫成程序供計(jì)算機(jī)執(zhí)行。算法描述就是將解決問題的步驟,用一種可理解的形式表示出來(lái)。常用的描述算法的方法有自然語(yǔ)言、流程圖和偽代碼等。(1)算法的表述了解自然語(yǔ)言、流程圖、偽代碼描述算法的特點(diǎn)及方法。對(duì)于同一個(gè)問題,可以用多種表達(dá)方法描述,不同的方法也會(huì)有優(yōu)劣之分。但如果要讓計(jì)算機(jī)解決問題,不管用哪種方法,必須明確地告訴計(jì)算機(jī)要處理的具體對(duì)象和每一步準(zhǔn)確的處理過程,否則計(jì)算機(jī)就無(wú)法處理。因此,算法描述要求盡可能精確、詳盡。(2)自然語(yǔ)言與偽代碼表示算法自然語(yǔ)言是指人們?nèi)粘J褂玫恼Z(yǔ)言,可以是漢語(yǔ)、英語(yǔ)或其他語(yǔ)言。用自然語(yǔ)言表示的優(yōu)點(diǎn)是通俗易懂,缺點(diǎn)是文字冗長(zhǎng),容易出現(xiàn)“歧義性”。1.3.1了解算法本課知識(shí)點(diǎn)

1.流程圖使用流程圖描述算法形象、直觀,更容易理解。在畫流程圖時(shí),需要用特定的圖形符號(hào)加上說(shuō)明,來(lái)表示程序的執(zhí)行步驟。流程圖的基本圖形及其功能如表所示。THANKSFORWATCHING《Python基礎(chǔ)案例教程》(微課版)第2章基本數(shù)據(jù)類型劉蓓第2章基本數(shù)據(jù)類型編寫程序解決問題時(shí),需要對(duì)不同類型數(shù)據(jù)進(jìn)行輸入存儲(chǔ)、計(jì)算、輸出。比如存儲(chǔ)社團(tuán)學(xué)員的姓名,學(xué)生的成績(jī),是否成年等數(shù)據(jù),這些數(shù)據(jù)的類型不同,學(xué)員姓名屬于字符串類型;學(xué)生成績(jī)屬于數(shù)值類型,而是否成年可以使用布爾類型存儲(chǔ)。數(shù)字、字符串、布爾型等是Python中幾種基本的數(shù)據(jù)類型。本章主要對(duì)Python的這三種基本的數(shù)據(jù)類型進(jìn)行介紹,學(xué)習(xí)不同類型數(shù)據(jù)的基本運(yùn)算,包括常用算術(shù)運(yùn)算,關(guān)系運(yùn)算,邏輯運(yùn)算以及數(shù)據(jù)類型間的輸出、轉(zhuǎn)換方法等。教學(xué)內(nèi)容01數(shù)字類型02布爾類型03字符串類型目錄CONTENTS第2章基本數(shù)據(jù)類型2.1.1整數(shù)和浮點(diǎn)數(shù)整數(shù)用來(lái)表示整數(shù)數(shù)值,即沒有小數(shù)的數(shù)值,如20,89,-30等。浮點(diǎn)數(shù)由整數(shù)部分和小數(shù)部分組成,即通常所說(shuō)的小數(shù),如3.4,-5.8等。print('%f'%x)輸出x,保留小數(shù)點(diǎn)后6位有效數(shù)字。如:print('%f'

%3.1415926535),輸出3.141593print('%.2f'%x)輸出x,保留2位小數(shù)。如:print('%.2f'%3.1415926535)輸出3.14本課知識(shí)點(diǎn)2.1.1整數(shù)和浮點(diǎn)數(shù)運(yùn)算符描述示例運(yùn)算結(jié)果說(shuō)明+加14+519兩個(gè)對(duì)象相加-減14-5=99一個(gè)數(shù)減去另一個(gè)數(shù)*乘14*570兩個(gè)數(shù)相乘/除14/52.8一個(gè)數(shù)除以另一個(gè)數(shù)%求余14%54返回除法的余數(shù)//整除14//52返回商的整數(shù)部分**冪2**38返回x的y次冪本課知識(shí)點(diǎn)Python語(yǔ)言中的算術(shù)運(yùn)算符+-*/%//**運(yùn)算順序2.1.1整數(shù)和浮點(diǎn)數(shù)BMI體質(zhì)指數(shù)是身體質(zhì)量指數(shù),簡(jiǎn)稱BMI指數(shù),是目前國(guó)際上常用的衡量人體是否健康的一個(gè)標(biāo)準(zhǔn)。已知李明的身高1.75m,體重80.5kg,請(qǐng)編寫程序,根據(jù)BMI公式計(jì)算出其BMI指數(shù)。height=1.65weight=45BMI=weight/(height*height)print('李明的BMI值:','%.2f'%BMI)案例分析%格式化案例1計(jì)算李明的BMI值2.1.2數(shù)值數(shù)據(jù)轉(zhuǎn)換格式:int(x,base)舉例:int(34.2);int('12',8)說(shuō)明:int()函數(shù)將x轉(zhuǎn)化為整型。其中x為字符串或數(shù)字;base為進(jìn)制數(shù),默認(rèn)為十進(jìn)制。本課知識(shí)點(diǎn)參數(shù)x參數(shù)base說(shuō)

明舉

例值無(wú)無(wú)值為0int()0整

數(shù)無(wú)值為整數(shù)xint(3)3浮點(diǎn)數(shù)無(wú)值為x取整

int(4.3)4字符串無(wú)默認(rèn)十進(jìn)制,值為對(duì)應(yīng)整數(shù)int('23')23字符串進(jìn)制數(shù)2,8,10,16等x為base進(jìn)制數(shù),值為十進(jìn)制int('12',16)18int('10',8)82.1.2數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換本課知識(shí)點(diǎn)Python語(yǔ)言中的input()函數(shù)用于輸入數(shù)據(jù),返回值為string(字符串)類型。

函數(shù)的作用是獲取用戶的輸入,返回輸入內(nèi)容,也可以用于暫停程序的運(yùn)行。調(diào)用此函數(shù)時(shí),程序會(huì)立即暫停,等待用戶輸入。如下代碼,可以獲取用戶輸入自己的用戶名。float()函數(shù)的功能是將整數(shù)和字符串轉(zhuǎn)換成浮點(diǎn)數(shù)。float()函數(shù)input()函數(shù)2.1.2數(shù)值數(shù)據(jù)轉(zhuǎn)換案例分析編寫簡(jiǎn)單的“匯率換算器”程序,計(jì)算一定金額的人民幣相應(yīng)能兌換多少美元(假設(shè)人民幣與美元的匯率比為1:6.77)。usd_vs_rmb=6.77rmb_str_value=input('請(qǐng)輸入人民幣(CNY)金額:')rmb_value=int(rmb_str_value)usd_value=rmb_value/usd_vs_rmbprint('人民幣',rmb_value,'元可以兌換美元

$','%.2f'%usd_value)#轉(zhuǎn)換整型#字符串類型案例2匯率換算器2.1.3數(shù)值數(shù)據(jù)計(jì)算本課知識(shí)點(diǎn)格式:round(x,n)例如:int(3.1456,2);int(-34.0023,3)說(shuō)明:round()函數(shù)返回x四舍五入的值。其中x為數(shù)值;n表示保留小數(shù)點(diǎn)的位數(shù),其中x需要四舍五入,默認(rèn)值為0。

參數(shù)x參數(shù)n說(shuō)

明舉

例值浮點(diǎn)數(shù)空n默認(rèn)為0,四舍五入取整round(3.1415)3浮點(diǎn)數(shù)整數(shù)四舍五入保,留n位小數(shù)round(-3.14156,2)-3.14round(3.14156,3)3.1422.1.3數(shù)值數(shù)據(jù)計(jì)算本課知識(shí)點(diǎn)函數(shù)格式說(shuō)明舉例值abs()abs(x)參數(shù)x數(shù)值表達(dá)式,返回x的絕對(duì)值abs(-30)30round()round(x,n)x四舍五入,保留N位小數(shù)round(4.56,1)4.6divmod()divmod(x,y)把除數(shù)和余數(shù)運(yùn)算結(jié)果結(jié)合起來(lái),返回一個(gè)包含商和余數(shù)的元組divmod(7,2)(3,1)max()max(x,y,z…)返回給定參數(shù)的最大值,參數(shù)可以為序列max(4,6,2)6min()min(x,y,z…)返回給定參數(shù)的最小值,參數(shù)可以為序列min(4,6,2)2常用數(shù)學(xué)運(yùn)算函數(shù)2.1.3數(shù)值數(shù)據(jù)計(jì)算本課知識(shí)點(diǎn)函數(shù)格式說(shuō)明舉例值chr()chr(x)c為范圍0~255間的整數(shù)返回對(duì)應(yīng)的字符chr(97)aord()ord(x)x為長(zhǎng)度為1的字符串,返回對(duì)應(yīng)的ASCII數(shù)值,或者Unicode數(shù)值ord('a')97oct()oct(x)x為整數(shù),將x轉(zhuǎn)換成8進(jìn)制字符串。oct(15)0o17常用類型轉(zhuǎn)換函數(shù)2.1.3數(shù)值數(shù)據(jù)計(jì)算案例分析學(xué)校體育館有一個(gè)圓柱體游泳池,底面直徑是20米。工作人員每天換水時(shí)通過注水口往泳池注水,注水速度為每小時(shí)180立方米。你能編寫程序,幫工作人員計(jì)算,需要用多長(zhǎng)時(shí)間可以使水位深達(dá)1.2米。radius=20/2area=3.14*radius*radiuscylinder_volume=area*1.2duration=cylinder_volume/180print('泳池注水所需的時(shí)間約為:',round(duration,2),'小時(shí)')#四舍五入,保留兩位小數(shù)案例3計(jì)算泳池注水時(shí)間2.2.1布爾值本課知識(shí)點(diǎn)

邏輯判斷在編程中是非常重要的,很多復(fù)雜程序在根本上都是建立在“真”與“假”的基本邏輯上。布爾值只有兩個(gè)值:真或假,即True或False。首字母大寫2.2.1布爾值本課知識(shí)點(diǎn)運(yùn)算符描述實(shí)例=簡(jiǎn)單的賦值運(yùn)算符x=y+z將y+z的運(yùn)算結(jié)果賦值給x+=加法賦值運(yùn)算符x+=y等效于x=x+y-=減法賦值運(yùn)算符x-=y等效于x=x-y*=乘法賦值運(yùn)算符x*=y等效于x=x*y/=除法賦值運(yùn)算符x/=y等效于x=x/y%=取模賦值運(yùn)算符x%=y等效于x=x%y//=取整除賦值運(yùn)算符x//=y等效于x//y**=冪賦值運(yùn)算符x**=y等效于x**y賦值運(yùn)算符2.2.1布爾值案例分析編寫程序模擬圖書管理平臺(tái)判斷密碼輸入是否確。假設(shè)用戶的初始密碼“666666”,根據(jù)用戶的輸入值,相應(yīng)輸出布爾值True或False。username=input('請(qǐng)輸入你的用戶名:')password=int(input('請(qǐng)輸入登錄密碼:'))judge=password==666666print(username,'你輸入的密碼為:',judge)判斷輸入密碼是否正確案例4判斷平臺(tái)登錄密碼判斷結(jié)果:布爾值2.2.1關(guān)系運(yùn)算本課知識(shí)點(diǎn)關(guān)系運(yùn)算符,也稱為比較運(yùn)算符。用于對(duì)變量或表達(dá)式的結(jié)果進(jìn)行大小、真假等比較,如果比較結(jié)果為真,則返回True,如果為假,則返回False。比較關(guān)系符通常用在條件語(yǔ)句中作為判斷的依據(jù)。運(yùn)算符描述舉例結(jié)果>

大于34>20True<

小于634<344False==等于‘c’==’c’True!=不等于94.2!=93True>=大小等于389>290True<=小于等于64.2<43.2False2.2.2關(guān)系運(yùn)算本課知識(shí)點(diǎn)常用字符對(duì)應(yīng)的ASCII碼的大小規(guī)則為“0-9<A-Z<a-z”。具體來(lái)說(shuō),數(shù)字比字母要小,如“7”<“F”;數(shù)字0比數(shù)字9要小,并按0到9順序遞增,如“3”<“8”;字母A比字母Z要小,并按A到Z順序遞增,如“A”<“Z”;同一個(gè)字母的大寫字母比小寫字母要小,如“A”<“a”。常用字符ASCII碼大小比較2.2.2關(guān)系運(yùn)算案例分析張麗三月份的工資收入為4500元。本月她準(zhǔn)備購(gòu)買1款價(jià)格在1500元以內(nèi)手機(jī),請(qǐng)幫她進(jìn)行開支預(yù)算,扣除家庭水、電、燃?xì)獾脑戮M(fèi)用,以及月購(gòu)買生活用口的費(fèi)用后,判斷其工資余額能否購(gòu)買手機(jī)。amount=float(input('請(qǐng)輸入繳納水電燃?xì)獾慕痤~:'))D_expenses=float(input('請(qǐng)輸入日均生活費(fèi):'))M_expenses=D_expenses*31balance=4500-amount-M_expensesjudge=balance>1500print('張麗工資余額能夠買手機(jī):',judge)判斷工資余額是否大于1500案例5家庭開支預(yù)算判斷結(jié)果:布爾值2.2.3邏輯運(yùn)算本課知識(shí)點(diǎn)

Python中的邏輯運(yùn)算符主要包括and(邏輯與)、or(邏輯或)以及not(邏輯非)。運(yùn)算符格式

說(shuō)明andxandy邏輯與:如果x為False,返回False否則返回y的計(jì)算值orxory邏輯或:如果x為True,返回True否則返回y的計(jì)算值notnotx邏輯非:如果x為False,返回True;如果x為True,返回False2.2.3邏輯運(yùn)算本課知識(shí)點(diǎn)邏輯運(yùn)算符可以和比較運(yùn)算符結(jié)合使用。在沒有()的情況下,比較運(yùn)算優(yōu)先邏輯運(yùn)算,先計(jì)算比較表達(dá)式的值,再進(jìn)行邏輯運(yùn)算。2.2.3邏輯運(yùn)算本課知識(shí)點(diǎn)

表達(dá)式中常用的運(yùn)算符有算術(shù)運(yùn)算符,賦值運(yùn)算符,比較運(yùn)算符和邏輯運(yùn)算符。解決問題時(shí),有的表達(dá)式中需要同時(shí)使用多個(gè)運(yùn)算符,那么必須考慮運(yùn)算符的優(yōu)先級(jí)。運(yùn)算的優(yōu)先級(jí)運(yùn)算符號(hào)說(shuō)明優(yōu)先級(jí)**冪運(yùn)算高級(jí)

低級(jí)*、/、%、//算術(shù)運(yùn)算+、-算術(shù)運(yùn)算<、<=、>、>=、!=、==比較運(yùn)算not邏輯運(yùn)算and邏輯運(yùn)算or邏輯運(yùn)算2.3.1邏輯運(yùn)算案例分析閏年的精確計(jì)算方法為:四年為一閏,百年不閏,四百年再閏。編寫程序,判斷輸入的年份是否為閏年。案例6判斷年份是否閏年years=int(input('請(qǐng)輸入年份:'))judge=(years%4==0andyears%100!=0)oryears%400==0print(years,'是否閏年:',judge)2.3.1連接字符串本課知識(shí)點(diǎn)輸出長(zhǎng)度較長(zhǎng)的字符串時(shí),可以用分行符\n進(jìn)行分行輸出。輸出換行2.3.1連接字符串本課知識(shí)點(diǎn)Python中字符串拼接的方法有很多,“+”運(yùn)算是其中的一種,可以輕松連接兩個(gè)字符串。+運(yùn)算2.3.1連接字符串本課知識(shí)點(diǎn)字符串與數(shù)值數(shù)據(jù)連接連接字符串與數(shù)值數(shù)據(jù)時(shí),要先將數(shù)值轉(zhuǎn)化為字符串。數(shù)值轉(zhuǎn)化為字符串用到str()函數(shù)。例如下面的代碼中,左邊的代碼運(yùn)行時(shí)會(huì)報(bào)錯(cuò),右邊的代碼為正確的代碼。2.3.1連接字符串案例分析

學(xué)校的外研社對(duì)在校學(xué)生進(jìn)行問卷調(diào)查,收集學(xué)生喜歡的英文格言。編寫程序,請(qǐng)學(xué)生輸入自己喜歡的格言,并打印輸出。案例7輸出喜歡的格言str1='What\'syourfavoritemotto?'str2=input('Pleaseinputyourfavoritemotto:')str=str1+'\n'+'Myfavoritemotto:'+str2print(str)2.3.2字符串格式化本課知識(shí)點(diǎn)%占位符格式化2.3.2字符串格式化本課知識(shí)點(diǎn)format格式2.3.2字符串格式化案例分析

試用Python語(yǔ)言編寫一個(gè)程序,請(qǐng)學(xué)生輸入個(gè)人基本信息,并按格式要求輸出學(xué)生的基本情況。案例8輸出用戶個(gè)人信息name=input('請(qǐng)輸入姓名:')grade=input('請(qǐng)輸入班級(jí):')str='姓名:%s\n班級(jí):%s'%(name,grade)print('----用戶信息-----')print(str)print('-------------------')2.3.3字符串函數(shù)本課知識(shí)點(diǎn)lower()函數(shù)用于將字符串中的全部大寫字母轉(zhuǎn)換為小寫字母。用于將字符串中的全部小寫字母轉(zhuǎn)換為大寫字母。upper()函數(shù)2.3.3字符串函數(shù)本課知識(shí)點(diǎn)in的用法Python中字符串間可以用關(guān)系運(yùn)算符連接,還可以用成員運(yùn)算符。常用關(guān)系運(yùn)算符“==”“!=”可以判斷字符串是否相等,成員運(yùn)算符in,notin可以判斷字符串1是否在字符串2中2.3.3字符串函數(shù)本課知識(shí)點(diǎn)函

數(shù)格

式描

述舉

例len()len(string)

計(jì)算字符串string的長(zhǎng)度str=’abc’len(str)輸出結(jié)果:3split()str.split(sep,maxsplit)分割字符串,str表示要分割的字符串;sep指定分隔符;maxsplit指定分割次數(shù)str='Iamagirl!'print(str.split(''))輸出結(jié)果:['I','am','a','girl!']count()str.count(‘char’,start,end)檢索指定字符串在另一個(gè)字符串中出現(xiàn)的次數(shù),如果檢索的字符串不存在返回0,否則返回出現(xiàn)的次數(shù)str='helloworld'print(str.count('o'))輸出結(jié)果:2find()str.find‘chars’,start,end)檢索是否包含指定的字符串,如果檢索的字符串不存在則返回-1,否則返回出現(xiàn)該字符串時(shí)的索引str='helloworld!'print(str.find('wo'))輸出結(jié)果:6strip()str.strip(‘chars’)用于去除字符串頭尾指定的字符或字符序列,默認(rèn)為空格或換行符str="123abcruno"print(str.strip('12')輸出結(jié)果:3abcruno2.3.3字符串函數(shù)案例分析

學(xué)校的小賣部會(huì)員注冊(cè)模塊中,要求會(huì)員名必須唯一,并且不區(qū)分字母的大小寫,即liming和LIMING被認(rèn)為是同一用戶。編寫程序,判斷輸入的會(huì)員是否已經(jīng)存在。假設(shè)會(huì)員用戶已有“l(fā)iming”“zhangxiang”“taohong”“l(fā)iuyin”。案例9驗(yàn)證注冊(cè)信息str1=‘liming|zhangxiang|taohong|liuyin’#已有會(huì)員

str2=input(‘請(qǐng)輸入您的會(huì)員注冊(cè)名:’)#注冊(cè)會(huì)員名str3=str2.lower()#全部轉(zhuǎn)換小寫judge=str3instr1#判斷是否注冊(cè)print('您輸入的會(huì)員名是否注冊(cè):',judge)THANKSFORWATCHING《Python基礎(chǔ)案例教程》(微課版)第3章Python程序控制張青第3章Python程序控制做事需要進(jìn)行思考,根據(jù)情況選擇正確、合適的方法。例如,行走路過紅綠燈,紅燈停、綠燈行;上學(xué),有多種交通工具可供選擇,公交車、走路、騎自行車等。生活中除了要做選擇,有時(shí)也需要重復(fù)做某件事。例如,學(xué)生上學(xué)、放學(xué),周末休息,日復(fù)一日,年復(fù)一年。程序設(shè)計(jì)也一樣,需要利用流程實(shí)現(xiàn)與用戶的交流,并根據(jù)用戶的需求來(lái)決定做什么,怎么做。程序控制對(duì)于任何一門編程語(yǔ)言來(lái)說(shuō)都是至關(guān)重要的,它提供了控制程序如何執(zhí)行的方法。本章主要講述Python語(yǔ)言中程序控制語(yǔ)句。教學(xué)內(nèi)容01程序分支02程序循環(huán)03程序跳轉(zhuǎn)目錄CONTENTS3.1.1

if語(yǔ)句本課知識(shí)點(diǎn)單分支if語(yǔ)句是最簡(jiǎn)單的條件判斷語(yǔ)句,語(yǔ)句的關(guān)鍵字為if,它在編程語(yǔ)言中用來(lái)判定所給定的條件是否滿足,根據(jù)判定的結(jié)果(真或假),來(lái)決定是否執(zhí)行相應(yīng)的語(yǔ)句塊。if…語(yǔ)句的執(zhí)行過程如圖3.1所示,其相當(dāng)于“如果…那么…”。如果條件成立,即表達(dá)式的值為真,則執(zhí)行語(yǔ)句塊;如果值為假,就跳過語(yǔ)句塊,繼續(xù)執(zhí)行后面的語(yǔ)句。3.1.1

if語(yǔ)句本課知識(shí)點(diǎn)Python語(yǔ)言使用if保留字來(lái)組成選擇語(yǔ)句,其語(yǔ)法形式如下:3.1.1if語(yǔ)句本課知識(shí)點(diǎn)選擇結(jié)構(gòu)的代碼縮進(jìn)

在Python選擇結(jié)構(gòu)中,同一個(gè)語(yǔ)句塊中的語(yǔ)句必須保證相同的縮進(jìn)量。如圖所示的程序作用是,輸入兩個(gè)數(shù),如果前一個(gè)數(shù)大,就交換兩個(gè)數(shù)的位置。交換兩個(gè)數(shù)的位置用到了3個(gè)語(yǔ)句,其縮進(jìn)應(yīng)該相同,如果縮進(jìn)的位置不同,程序運(yùn)行結(jié)果將會(huì)不同。3.1.1if語(yǔ)句本課知識(shí)點(diǎn)if語(yǔ)句中的表達(dá)式在Python的if語(yǔ)句中,通過表達(dá)式的值決定是否執(zhí)行語(yǔ)句,如本案例中判斷一個(gè)數(shù)是不是偶數(shù),使用的表達(dá)式是“num%2==0”,除了這種寫法外,還可以寫作“num/2==int(num/2)”“num/2==num//2”。案例分析什么是偶數(shù)?小學(xué)五年級(jí)時(shí),數(shù)學(xué)課上學(xué)習(xí)過“整數(shù)中是2的倍數(shù)的數(shù)叫做偶數(shù)”。你能編寫程序,判斷一個(gè)數(shù)是不是偶數(shù)嗎?3.1.1if語(yǔ)句num=int(input("請(qǐng)輸入一個(gè)數(shù):"))if(num%2)==0:print(num,"是偶數(shù)")3.1.2

if…else語(yǔ)句本課知識(shí)點(diǎn)程序在執(zhí)行時(shí),先對(duì)條件進(jìn)行判斷,再根據(jù)條件的正確與否,決定程序執(zhí)行的語(yǔ)句,這種情況稱為雙分支結(jié)構(gòu),Python利用if…else語(yǔ)句來(lái)實(shí)現(xiàn)。if…else語(yǔ)句的執(zhí)行過程如圖所示。如果條件成立,則執(zhí)行語(yǔ)句塊1;否則執(zhí)行語(yǔ)句塊2;雙分支語(yǔ)句執(zhí)行完成后,繼續(xù)執(zhí)行分支后面的語(yǔ)句。3.1.2

if…else語(yǔ)句本課知識(shí)點(diǎn)Python語(yǔ)言使用if、else保留字來(lái)組成雙分支語(yǔ)句,其語(yǔ)法形式如下:3.1.2if…else語(yǔ)句本課知識(shí)點(diǎn)if…else語(yǔ)句使用注意事項(xiàng)在Python中使用if…else語(yǔ)句,要注意縮進(jìn)以及冒號(hào)的使用,具體如圖所示。3.1.2if…else語(yǔ)句本課知識(shí)點(diǎn)用if語(yǔ)句改寫if…else語(yǔ)句編寫的代碼

在Python中,用if…else語(yǔ)句編寫的代碼,可以用if語(yǔ)句改寫。例如,本案例中代碼可以改寫為如圖所示。3.1.2if…else語(yǔ)句案例分析m=0k=float(input("請(qǐng)輸入里程數(shù):"))ifk<=2.5:m=8elifk>2.5:m=8+(k-2.5)*1.5print("應(yīng)付金額:",m)

方舟市出租車起步價(jià)與汽車排量有關(guān),每輛出租車的計(jì)費(fèi)方式因此不同,如一輛排量為1.5T出租車的收費(fèi)標(biāo)準(zhǔn)為:2.5千米以內(nèi)8元,2.5千米以外每千米收費(fèi)1.5元,你能編寫程序,根據(jù)乘客乘坐的距離,求出應(yīng)支付的打車費(fèi)用嗎?3.1.3選擇嵌套本課知識(shí)點(diǎn)選擇語(yǔ)句嵌套的執(zhí)行過程,如圖所示,相當(dāng)于在一個(gè)單支語(yǔ)句下嵌入兩個(gè)單分支語(yǔ)句,構(gòu)成選擇嵌套結(jié)構(gòu)。編寫程序時(shí),如果遇到需要從多個(gè)選項(xiàng)中選擇一個(gè)的情況,則可以使用選擇語(yǔ)句嵌套,該語(yǔ)句是單分支選擇語(yǔ)句的拓展。3.1.3選擇嵌套本課知識(shí)點(diǎn)前面學(xué)過了雙分支語(yǔ)句,但若是遇到所要判斷的情況不止兩種,可以使用選擇語(yǔ)句嵌套,格式如下:3.1.3選擇嵌套本課知識(shí)點(diǎn)選擇嵌套的縮進(jìn)注意事項(xiàng)選擇嵌套語(yǔ)句中的if是層層嵌套的結(jié)構(gòu)關(guān)系,因此在編寫代碼時(shí)要注意縮進(jìn),如圖3.13所示:3.1.3選擇嵌套本課知識(shí)點(diǎn)if語(yǔ)句與else語(yǔ)句配合

在Python中,if選擇結(jié)構(gòu)可以與else語(yǔ)句配合使用,當(dāng)選擇條件為False時(shí),程序會(huì)執(zhí)行else語(yǔ)句下的語(yǔ)句塊。以判斷成績(jī)的等級(jí)為例,如圖3.14所示,從鍵盤上接收一個(gè)百分制成績(jī)(0-100),要求輸出相應(yīng)的成績(jī)等級(jí)A-D,其中,85分以上為“A”,75-84為“B”,60-74為“C”,0-60為“D”。3.1.3選擇嵌套案例分析m=float(input("請(qǐng)輸入書的價(jià)格:"))ifm>0:n=m*0.9ifm>=200:n=m*0.8ifm>=500:n=m*0.7print("優(yōu)惠后的價(jià)格為:%.2f"%n)4月23日是世界讀書日,方舟書店有優(yōu)惠活動(dòng),200元(不包括200元)以內(nèi)九折,200~500元(不包括500元)八折,500元及以上七折。請(qǐng)你編寫程序?qū)崿F(xiàn)書店優(yōu)惠打折的功能,當(dāng)輸入書價(jià)后,計(jì)算出應(yīng)付給書店的價(jià)格。3.2.1

for循環(huán)本課知識(shí)點(diǎn)for循環(huán)可以實(shí)現(xiàn)次數(shù)確定的循環(huán),語(yǔ)句的關(guān)鍵字為for,循環(huán)時(shí),會(huì)用計(jì)數(shù)器來(lái)計(jì)算循環(huán)的次數(shù)。for語(yǔ)句與range()函數(shù)搭配,其中n是循環(huán)的起始值,m是循環(huán)的終值,i為步長(zhǎng),如果沒有指定步長(zhǎng),則默認(rèn)為1,循環(huán)的執(zhí)行流程如圖所示。判斷循環(huán)起始值是否小于終值(不包括等于),如果為真則執(zhí)行循環(huán)中的語(yǔ)句塊,同時(shí)修改循環(huán)變量,再重新回到上面去判斷條件是否成立;如果為假,就跳出循環(huán),執(zhí)行后面的語(yǔ)句。3.2.1

for循環(huán)本課知識(shí)點(diǎn)Python語(yǔ)言使用for保留字來(lái)組成for循環(huán)語(yǔ)句,其最簡(jiǎn)單的語(yǔ)法形式如下:3.2.1for循環(huán)本課知識(shí)點(diǎn)range()函數(shù)range()函數(shù)一般用在for循環(huán)中,函數(shù)的語(yǔ)法為range(start,stop[,step]),其中的參數(shù)說(shuō)明如下:start:計(jì)數(shù)從start開始。默認(rèn)是從0開始。例如range(5)等價(jià)于range(0,5)。stop:計(jì)數(shù)到stop結(jié)束,但不包括stop。例如:range(0,5)是[0,1,2,3,4]沒有5。step:步長(zhǎng),默認(rèn)為1。例如:range(0,5)等價(jià)于range(0,5,1)。本課知識(shí)點(diǎn)在for語(yǔ)句中使用序列3.2.1for循環(huán)本案例中for語(yǔ)句是與range()函數(shù)配合使用,其實(shí)是由range()函數(shù)產(chǎn)生一個(gè)序列,循環(huán)時(shí)依次執(zhí)行,如果不用range()函數(shù),可以直接使用序列,語(yǔ)法規(guī)范為:“for變量in(序列):”,具體使用如圖所示。案例分析3.2.1for循環(huán)s=0foriinrange(1,101):s=s+iprint("1+2+……+99+100=",s)

相信你一定聽說(shuō)過《高斯求和》故事,高斯上小學(xué)時(shí),有一天,老師給他們班的同學(xué)出了一道數(shù)學(xué)題:1+2+3+4+5+……+100=?同學(xué)們都立即拿出紙和筆,認(rèn)真地算起來(lái),而高斯沒有馬上算,而是仔細(xì)思考后寫出了一個(gè)算式(1+100)×50=5050。對(duì)于這種重復(fù)計(jì)算的問題,編寫程序也能快速算出結(jié)果,你會(huì)使用循環(huán)結(jié)構(gòu)編寫程序,計(jì)算1加到100的和嗎?3.2.2

While循環(huán)本課知識(shí)點(diǎn)while循環(huán)會(huì)根據(jù)條件不斷執(zhí)行循環(huán)體中的語(yǔ)句塊,直到條件不符合為止。與for循環(huán)相比,while循環(huán)可以不知道循環(huán)的次數(shù),程序在執(zhí)行時(shí),先對(duì)條件進(jìn)行判斷,如果滿足條件就執(zhí)行循環(huán)體中的語(yǔ)句塊,如果不滿足就跳出循環(huán)。while語(yǔ)句的執(zhí)行過程如圖所示。如果條件成立,則執(zhí)行語(yǔ)句塊;如果不成立則跳出循環(huán);while語(yǔ)句執(zhí)行完成后,繼續(xù)執(zhí)行循環(huán)后面的語(yǔ)句。3.2.2

While循環(huán)本課知識(shí)點(diǎn)Python語(yǔ)言用while來(lái)實(shí)現(xiàn)根據(jù)情況判斷進(jìn)行循環(huán),其語(yǔ)法形式如下:本課知識(shí)點(diǎn)while語(yǔ)句使用3.2.2

While循環(huán)使用while語(yǔ)句編程通常會(huì)遇到兩種情況,一種是循環(huán)次數(shù)事先確定的問題;一種是循環(huán)次數(shù)事先不確定的問題。while語(yǔ)句是一個(gè)條件循環(huán)語(yǔ)句,即首先計(jì)算表達(dá)式,根據(jù)表達(dá)式值的真、假來(lái)決定是否繼續(xù)循環(huán)。while語(yǔ)句的語(yǔ)法與if語(yǔ)句類似,要使用縮進(jìn)來(lái)標(biāo)注滿足條件,需執(zhí)行的語(yǔ)句。while語(yǔ)句的條件表達(dá)式不需要用括號(hào)括起來(lái),但表達(dá)式后面必須有冒號(hào)。本課知識(shí)點(diǎn)無(wú)限循環(huán)3.2.2

While循環(huán)使用while循環(huán)時(shí),如果條件設(shè)置不當(dāng),會(huì)形成無(wú)限循環(huán),除非強(qiáng)行中斷程序,才會(huì)停止。如圖3.26左側(cè)所示,i的初值是1,在循環(huán)中沒有改變i的值,所以while后面的條件表達(dá)式一直成立,程序執(zhí)行時(shí)是無(wú)限循環(huán),不會(huì)停止。如果出現(xiàn)這種情況,可以按Ctrl+C鍵來(lái)停止程序的執(zhí)行。要解決這個(gè)問題,可以在語(yǔ)句中添加終止循環(huán)的條件,如圖右側(cè)所示,在語(yǔ)句s=s+i下加上語(yǔ)句i=i+1。案例分析3.2.2

While循環(huán)s=0i=1n=100whiles<10000:s=s+nifs<10000:i=i+1n=n+100print("10000元錢,你需要存:",i,"個(gè)月")方輕舟準(zhǔn)備用兼職做平面設(shè)計(jì)賺的錢,買一臺(tái)配置較好的筆記本電腦,這臺(tái)電腦價(jià)格1萬(wàn)元。他打算第1個(gè)月存款100元,以后每個(gè)月比前一月多100元,請(qǐng)編程計(jì)算他幾個(gè)月后可以購(gòu)買心儀的筆記本電腦?

3.2.3循環(huán)嵌套本課知識(shí)點(diǎn)for循環(huán)語(yǔ)句的執(zhí)行過程,如圖所示。外部循環(huán)執(zhí)行1次,內(nèi)部循環(huán)要執(zhí)行一遍。3.2.3循環(huán)嵌套本課知識(shí)點(diǎn)所謂循環(huán)嵌套,就是循環(huán)中還有循環(huán),如果是嵌套for循環(huán),則表示for循環(huán)中嵌套for循環(huán),格式如下:本課知識(shí)點(diǎn)輸出數(shù)據(jù)后不換行3.2.3循環(huán)嵌套在Python中,使用print()函數(shù),可以輸出各種類型的數(shù)據(jù),也可以對(duì)輸出的數(shù)據(jù)進(jìn)行格式設(shè)置,例如輸完后換行還是不換行等。如圖所示,如果輸出數(shù)據(jù)后不換行,在結(jié)束處添加end="",其中雙引號(hào)中的空格數(shù)可用來(lái)控制輸出的每個(gè)數(shù)據(jù)間的距離。本課知識(shí)點(diǎn)while循環(huán)嵌套3.2.3循環(huán)嵌套案例中介紹的是for循環(huán)的嵌套,while循環(huán)也可以嵌套使用,格式如圖所示。甚至for循環(huán)與while循環(huán)中也可以在嵌套中混合使用。案例分析

在使用QQ、微信聊天時(shí),會(huì)看到用符號(hào)組成的各種表情,如(@-@)、→^←等,惹人喜歡。使用Python中的函數(shù)print(),也可輸出各種符號(hào)組成的表情或者圖案。你能編寫程序,當(dāng)輸入5,即輸出由符號(hào)“*”組成的5×5的矩形圖案嗎?3.2.3循環(huán)嵌套foriinrange(1,6):forjinrange(1,6):print("*",end="")print()3.3.1

break語(yǔ)句本課知識(shí)點(diǎn)break語(yǔ)句可用在循環(huán)結(jié)構(gòu)中,遇到該語(yǔ)句,即跳出循環(huán),執(zhí)行循環(huán)語(yǔ)句后面的語(yǔ)句。break可以用在for循環(huán)中,也可以用在while循環(huán)中。break語(yǔ)句一般與if語(yǔ)句結(jié)合使用,用if語(yǔ)句判斷是否滿足跳出循環(huán)的條件,如果滿足,則使用break跳出循環(huán),流程如圖所示。3.3.1

break語(yǔ)句本課知識(shí)點(diǎn)Python語(yǔ)言中,可以使用break語(yǔ)句來(lái)跳出循環(huán),其語(yǔ)法形式如下所示:本課知識(shí)點(diǎn)中斷語(yǔ)句break的執(zhí)行方式3.3.1

break語(yǔ)句在Python語(yǔ)言中,如果遇到break命令,直接跳出循環(huán),執(zhí)行循環(huán)語(yǔ)句后面的語(yǔ)句。如圖所示,while語(yǔ)句的條件表達(dá)式永遠(yuǎn)成立,是無(wú)限循環(huán),此時(shí)循環(huán)體中要有退出循環(huán)的條件,不然會(huì)出現(xiàn)“死循環(huán)”。程序中i的初值是0,每執(zhí)行一次循環(huán),i增加2,輸出變量的值分別是2、4、6、8,當(dāng)i超過8時(shí),滿足條件,執(zhí)行語(yǔ)句“break”跳出循環(huán)。

本課知識(shí)點(diǎn)for循環(huán)中使用break語(yǔ)句3.3.1

break語(yǔ)句在Python中,for循環(huán)中可以使用break語(yǔ)句,作用是遇到這個(gè)語(yǔ)句時(shí),跳出循環(huán)結(jié)構(gòu),執(zhí)行循環(huán)后面的語(yǔ)句。如圖所示,循環(huán)從1開始到10,執(zhí)行循環(huán),當(dāng)i等于1、2、3時(shí),不滿足條件,不換行輸出變量i,不執(zhí)行break語(yǔ)句,當(dāng)i=4時(shí),滿足條件,退出循環(huán)。案例分析3.3.1

break語(yǔ)句s=0i=0.0001j=0whiles<=8848:i=i*2s=ij=j+1print("需要折:",j,"次")

不要小看小小的沙粒,聚沙也能成塔!同樣,一張薄薄的紙,如果足夠大,不斷對(duì)折也能超過珠穆朗瑪峰的高度(假設(shè)一張紙的厚度是0.0001米,珠穆朗瑪峰的高度是8848米),你能編寫程序,計(jì)算這張大大的“紙”,要折多少次才能超過珠穆朗瑪峰的高度嗎?3.3.2

continue語(yǔ)句本課知識(shí)點(diǎn)程序在執(zhí)行時(shí),如果遇到continue語(yǔ)句,則跳出本次循環(huán),然后判斷循環(huán)條件是否成立,再?zèng)Q定是否開始下一次的循環(huán)。continue語(yǔ)句出現(xiàn)在循環(huán)語(yǔ)句中,可以與if語(yǔ)句進(jìn)行組合,根據(jù)條件判斷是否結(jié)束本次循環(huán),如果符合條件,執(zhí)行continue語(yǔ)句后,回到循環(huán)開始處,判斷是否執(zhí)行循環(huán),算法如圖所示。3.3.2

continue語(yǔ)句本課知識(shí)點(diǎn)Python語(yǔ)言使用continue語(yǔ)句來(lái)實(shí)現(xiàn)跳出本次循環(huán),其語(yǔ)法形式如下:本課知識(shí)點(diǎn)for循環(huán)中使用continue語(yǔ)句3.3.2

continue語(yǔ)句在Python中,可以在while循環(huán)中使用continue語(yǔ)句,在for循環(huán)中也可以使用continue語(yǔ)句,格式如圖所示。本課知識(shí)點(diǎn)continue語(yǔ)句和break語(yǔ)句的區(qū)別3.3.2

continue語(yǔ)句

在for循環(huán)與while循環(huán)中,均可以使用continue和break語(yǔ)句。它們區(qū)別是:break語(yǔ)句結(jié)束整個(gè)循環(huán),然后執(zhí)行循環(huán)語(yǔ)句后面的語(yǔ)句,不再判斷執(zhí)行循環(huán)的條件是否成立;而continue語(yǔ)句只結(jié)束本次循環(huán),需要上去再次判斷循環(huán)條件是否成立,決定循環(huán)是否執(zhí)行。案例分析3.3.2

continue語(yǔ)句n=0whilen<1000:n=n+1ifn%2!=0:continueprint(n)數(shù)字是個(gè)奇妙的大家族,可以根據(jù)不同的特點(diǎn),進(jìn)行不同的劃分,形成不同的數(shù)字集合。如正數(shù)、負(fù)數(shù),奇數(shù)、偶數(shù),實(shí)數(shù)、自然數(shù),有理數(shù)、無(wú)理數(shù)等等,根據(jù)條件就可以找出符合條件的數(shù),你能編寫程序,輸出1-1000之間所有的偶數(shù)嗎?3.3.3

else語(yǔ)句本課知識(shí)點(diǎn)在Python中,循環(huán)中用到條件表達(dá)式,對(duì)循環(huán)的條件進(jìn)行判斷,根據(jù)不同的情況執(zhí)行不同的語(yǔ)句。在循環(huán)中可以與else語(yǔ)句搭配使用,當(dāng)條件不滿足時(shí),執(zhí)行else后的語(yǔ)句。在Python中,while與else語(yǔ)句搭配使用。如圖所示,while條件語(yǔ)句滿足的情況下執(zhí)行語(yǔ)句塊1,不滿足執(zhí)行else后的語(yǔ)句塊2。3.3.3

else語(yǔ)句本課知識(shí)點(diǎn)在Python中,一般考慮符合條件時(shí)執(zhí)行循環(huán),不符合情況時(shí)不執(zhí)行。如果在循環(huán)中配以else語(yǔ)句,也可以考慮不符合條件時(shí)的情況,具體方法是,判斷循環(huán)語(yǔ)句的條件表達(dá)式,如果成立則執(zhí)行語(yǔ)句塊1,如果不成立,則執(zhí)行else后面的語(yǔ)句塊2,格式如下:本課知識(shí)點(diǎn)for循環(huán)與else語(yǔ)句配合3.3.3

else語(yǔ)句與while循環(huán)一樣,for循環(huán)中也可使用else語(yǔ)句。如圖所示,當(dāng)for循環(huán)從1開始到10,執(zhí)行完for循環(huán)后,會(huì)執(zhí)行else后的語(yǔ)句塊,因此程序的執(zhí)行結(jié)果為:246810,循環(huán)結(jié)束。本課知識(shí)點(diǎn)隨機(jī)模塊3.3.3

else語(yǔ)句Python標(biāo)準(zhǔn)庫(kù)中的random()函數(shù),可以生成隨機(jī)浮點(diǎn)數(shù)、整數(shù)、字符串,甚至幫助我們隨機(jī)選擇列表序列中的一個(gè)元素,打亂一組數(shù)據(jù)等,讓程序設(shè)計(jì)更有趣。與math()函數(shù)一樣,先要導(dǎo)入庫(kù),再引用函數(shù)。例如圖所示代碼,可以隨機(jī)生成1-20(包括1和20)的隨機(jī)數(shù)。案例分析3.3.3

else語(yǔ)句i=0whilei<3:importrandoma=random.randint(0,10)b=random.randint(0,10)print(a,'+',b,'=')c=int(input('請(qǐng)輸入答案:'))d=a+bifd==c:print('回答正確')else:print('回答錯(cuò)誤,正確的是:',d)i=i+1else:print('答題完成!')

使用紙質(zhì)的加法練習(xí)測(cè)試本,計(jì)算完畢還需要對(duì)答案、改題,而計(jì)算機(jī)上的“加法測(cè)試”程序,不但可以隨機(jī)出題,還可以自動(dòng)改題。你能編寫程序,實(shí)現(xiàn)這樣的功能嗎?THANKSFORWATCHING《Python基礎(chǔ)案例教程》(微課版)第4章Python數(shù)據(jù)結(jié)構(gòu)第4章Python數(shù)據(jù)結(jié)構(gòu)生活中我們常常把一系列相關(guān)的數(shù)據(jù)存儲(chǔ)在一起,比如一個(gè)人的姓名、性別、身高、體重等情況。在處理這類數(shù)據(jù)時(shí),往往把數(shù)據(jù)集中在一起,利用數(shù)據(jù)結(jié)構(gòu)進(jìn)行存儲(chǔ),從而方便對(duì)數(shù)據(jù)進(jìn)行管理,提高數(shù)據(jù)的處理和存儲(chǔ)效率。Python中的數(shù)據(jù)結(jié)構(gòu),常見的有列表、元組、集合、字典等形式。通過本章的學(xué)習(xí),你將認(rèn)識(shí)Python中常見數(shù)據(jù)結(jié)構(gòu)的形式,能夠針對(duì)不同的數(shù)據(jù),選用合適的數(shù)據(jù)結(jié)構(gòu);掌握數(shù)據(jù)結(jié)構(gòu)的使用方法,綜合處理一系列數(shù)據(jù),從而獲取有用的信息。教學(xué)內(nèi)容01列表02元祖03字典目錄CONTENTS第4章Python數(shù)據(jù)結(jié)構(gòu)04集合4.1.1列表的創(chuàng)建與刪除創(chuàng)建列表的方式有多種,目的都是為了更好地把數(shù)據(jù)組織在一起進(jìn)行處理。創(chuàng)建列表最直接的方式是通過賦值語(yǔ)句創(chuàng)建,當(dāng)然也可以通過list()、range()函數(shù)進(jìn)行創(chuàng)建。如果不再需要列表中的部分元素,可以刪除列表的部分元素,當(dāng)然也可以把列表整體刪除。列表(list)是Python最基本的數(shù)據(jù)結(jié)構(gòu),列表的所有元素都存放在一對(duì)中括號(hào)“[]”中,每相鄰兩個(gè)元素中間用逗號(hào)“,”隔開。列表的元素可以是數(shù)字、字符串、列表、元組等任何類型。本課知識(shí)點(diǎn)4.1.1列表的創(chuàng)建與刪除本課知識(shí)點(diǎn)列表格式:listname=[元素1,元素2,元素3,……,元素n](1)示例:jieshao=['Python',1991,'發(fā)行','中文名:蟒蛇'](2)提醒:元素沒有個(gè)數(shù)限制,可以是Python的任何數(shù)據(jù)類型。列表索引:列表中的每一個(gè)元素都有編號(hào),稱為索引。正向用0~n-1表示,反向用-1~-n表示。例如listname[0],代表列表的第一個(gè)元素。4.1.1列表的創(chuàng)建與刪除本課知識(shí)點(diǎn)使用賦值語(yǔ)句直接創(chuàng)建列表。示例:name=["李明","王偉","張麗","王芳"]、num=[1,2,3,4,5]創(chuàng)建空列表。示例:num=[]創(chuàng)建數(shù)值列表:通過list()函數(shù)創(chuàng)建。示例:list(range(2,10,2))→[2,4,6,8]4.1.1列表的創(chuàng)建與刪除本課知識(shí)點(diǎn)刪除列表:使用del語(yǔ)句刪除列表。示例:delname#刪除名為name的列表

刪除列表元素:(1)根據(jù)索引刪除:使用del語(yǔ)句刪除列表元素。dels[0]#刪除列表s的第一個(gè)元素(2)根據(jù)索引刪除:使用pop()方法實(shí)現(xiàn)。s.pop(-1)#刪除列表s中最后一個(gè)元素(3) 根據(jù)元素值刪除:使用remove()方法實(shí)現(xiàn),如果元素不存在,則報(bào)錯(cuò)。s.remove("元素值")#刪除列表s中指定元素的第一個(gè)匹配項(xiàng)4.1.1列表的創(chuàng)建與刪除《中國(guó)詩(shī)詞大會(huì)》是一個(gè)深受廣大詩(shī)詞愛好者喜愛的節(jié)目。其中的詩(shī)詞填空環(huán)節(jié),給出詩(shī)詞的上句,請(qǐng)你說(shuō)出詩(shī)詞的下一句;或者給出下句,請(qǐng)你說(shuō)出上一句。請(qǐng)你編寫程序,模擬出題的過程,隨機(jī)顯示一首詩(shī)詞中的某一句,要求回答出相應(yīng)的上句或下句。案例分析案例1詩(shī)詞填空4.1.1列表的創(chuàng)建與刪除importrandomshi=["好雨知時(shí)節(jié)","當(dāng)春乃發(fā)生","隨風(fēng)潛入夜","潤(rùn)物細(xì)無(wú)聲","野徑云俱黑","江船火獨(dú)明","曉看紅濕處","花重錦官城"]i=random.randint(0,7)print(shi[i])ifi%2==0:print("說(shuō)出詩(shī)詞的下一句:______________")else:print("說(shuō)出詩(shī)詞的上一句:______________")案例分析4.1.2列表訪問

由于列表是有序數(shù)列,在訪問列表元素的時(shí)候,只需引用該元素的位置或索引即可。如果要訪問列表中的多個(gè)元素,也可以采用切片的方式訪問列表中一定范圍內(nèi)的元素。本課知識(shí)點(diǎn)

可以通過“+”將兩個(gè)列表相連接,相同的元素不會(huì)刪除;也可以通過乘號(hào),使用“*”乘以數(shù)字,可以重復(fù)列表相應(yīng)次數(shù)。listname.append(元素):列表末尾添加一個(gè)元素。listname.extend(列表):列表末尾添加另一個(gè)列表的元素。

示例:list1=[1,2,3]、list2=[4,5]list1.extend(list2)→[1,2,3,4,5]listname.insert(列表索引,元素):給列表中索引位置增加一個(gè)元素。4.1.2列表訪問索引訪問:利用列表的索引,訪問列表中的某一個(gè)元素。形式:listname[索引]示例:s[0]#訪問列表s中的第一個(gè)元素本課知識(shí)點(diǎn)切片訪問:訪問列表中一定范圍內(nèi)的部分元素。注意在列表范圍內(nèi)訪問,否則程序報(bào)錯(cuò)。形式:listname[start:end:step] start:開始位置

end:結(jié)束位置(訪問時(shí)不包含結(jié)束位置)

step:步長(zhǎng),默認(rèn)為1示例:list1=[1,2,3,4,5,6,7,8]print(list1[1:3])結(jié)果:[2,3]4.1.2列表訪問案例分析生活中很多人把自己喜歡的歌曲收集在一起,形成歌單的形式,方便自己隨時(shí)聽歌。在制作歌單時(shí),可以刪除不想聽的歌曲,也可以添加新的歌曲,對(duì)歌單可以選擇某首歌曲進(jìn)行播放,或者選擇部分歌曲進(jìn)行播放。案例2制作歌單4.1.2列表訪問案例分析importrandomgequ=["《我的未來(lái)不是夢(mèng)》","《我相信》","《相信自己》","《從頭再來(lái)》","《飛得更高》","《愛拼才會(huì)贏》"]gequ.append("《超越夢(mèng)想》")gequ.pop(1)print("——顯示全部歌單——")forjingequ:print("第",gequ.index(j)+1,"首:",j)n=int(input("輸入你想聽的歌曲(輸入序號(hào)):"))print("播放第",n,"首歌曲:",gequ[n-1])print("——隨機(jī)播放部分連續(xù)歌曲——")l=len(gequ)i=random.randint(0,l-1)j=random.randint(0,l-1)ifi>j:i,j=j,iprint("播放第",i+1,"首到",j+1,"首歌曲:"

溫馨提示

  • 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ù)覽,若沒有圖紙預(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)論