




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
《Python語言程序設計》?精品課件合集Python語言程序設計第4章程序的流程控制第4章程序的流程控制4.1順序結構程序是由一系列語句按照特定的結構組成的,3種基本的程序結構分別是:順序結構、分支結構和循環(huán)結構。不同的程序結構,代表著不同的語句運行順序,即程序的流程。例如,在順序結構的程序中,將會按照程序中的語句順序,自上向下逐條運行。順序結構程序3/40編寫一個計算三角形面積的程序,其中需要用戶依次輸入三角形的三條邊長,然后使用公式:計算三角形的面積,其中:案例:求三角形的面積4/40運行效果:案例:求三角形的面積5/40第4章程序的流程控制4.2分支結構分支結構的程序在運行時,允許程序根據(jù)不同的“預設條件”運行相應的語句塊,從而控制程序的運行流程,分支結構也稱為選擇結構。
分支結構程序7/40分支結構的程序在運行時,允許程序根據(jù)不同的“預設條件”運行相應的語句塊,從而控制程序的運行流程,分支結構也稱為選擇結構。例如,在計算三角形面積的程序中,希望增加判斷三角形是否成立的預設條件,即只有當輸入的三條邊長能構成三角形時,才計算三角形的面積。若要完成上述功能,則必須在程序中加入對預設條件“三角形是否成立”的判斷語句。分支結構程序8/40分支結構的程序在運行時,允許程序根據(jù)不同的“預設條件”運行相應的語句塊,從而控制程序的運行流程,分支結構也稱為選擇結構。例如,在計算三角形面積的程序中,希望增加判斷三角形是否成立的預設條件,即只有當輸入的三條邊長能構成三角形時,才計算三角形的面積。若要完成上述功能,則必須在程序中加入對預設條件“三角形是否成立”的判斷語句。Python中用于構建分支結構程序的關鍵字有if、elif和else。分支結構程序9/40分支語句if…else…的語法格式如下所示,同時為了表示程序之間的包含關系,語句塊1和語句塊2都需要向右縮進。if條件表達式:
語句塊1[else:
語句塊2]在運行上述結構的程序時,首先會計算if語句中的條件表達式對應的邏輯值,如果計算結果為True,就運行語句塊1并忽略語句塊2,否則,忽略語句塊1并運行語句塊2。在上述語法格式中,else語句及其引導的語句塊2被一對方括號包含,表示括號內(nèi)的語句可以根據(jù)實際情況省略,即如果沒有在不滿足條件表達式為True時需要運行的語句,則可以不添加else語句及其引導的語句塊2。if…else…語句10/40案例:判斷三角形是否成立并計算其面積11/40在一些具體問題的求解中,也可以省略else語句塊,僅使用if語句塊來構造相應的程序,例如:編寫程序提示用戶輸入一個有效的年份,輸出該年份的二月份天數(shù),程序如下:運行結果如下:單分支結構的程序12/40當程序處理的問題需要判斷2種以上不同的情況時,就需要構建多分支結構的程序。例如,編寫程序參考南京水務集團公布的居民用水階梯價格(見下表),計算某戶居民一年應繳水費。由表4-1可知,三個階段的水費計算公式各不相同,因此需要在程序中構造多分支結構,由此引入elif語句。多分支結構與elif語句
年用水量到戶單價第一階梯年用水量≤180立方米3.04元第二階梯180立方米<年用水量≤300立方米3.75元第三階梯年用水量>300立方米5.88元13/40分支語句if…elif…else…的語法格式如下所示,同時為了表示程序之間的包含關系,語句塊1至語句塊n都需要向右縮進。if條件表達式1:
語句塊1elif條件表達式2:
語句塊2…[else:
語句塊n]其中,省略號表示elif語句塊可以根據(jù)實際需要出現(xiàn)多次。if…elif…else…語句14/40案例:計算階梯水費程序的運行結果如下:15/40第4章程序的流程控制4.3循環(huán)結構循環(huán)結構的程序在運行時,可以讓程序中指定的代碼塊在一定的條件下重復運行。通過構建循環(huán)結構的程序,使得其在滿足“預設條件”下,重復運行一段語句塊,被稱為條件循環(huán)。構造條件循環(huán)有兩個要素,一是循環(huán)體,即重復運行的語句塊,另一個是循環(huán)條件,即重復運行語句塊所要滿足的條件,在Python中通常使用while關鍵字來構建條件循環(huán)。此外,還有一種被稱為迭代循環(huán)的循環(huán)結構程序,其運行過程是將某個數(shù)據(jù)集合中的數(shù)據(jù)對象挨個賦值到指定的變量中,被賦值的變量稱作循環(huán)變量,再將循環(huán)變量依次代入循環(huán)體中重復運行,在Python中通常使用for關鍵字來構建迭代循環(huán)。循環(huán)結構程序17/40while語句可以在條件為真的前提下重復運行某塊語句,它的語法格式如下所示,同時為了表示程序之間的包含關系,語句塊需要向右縮進。while條件表達式:
語句塊while關鍵字構建的循環(huán)結構被稱為條件循環(huán),即滿足條件時,重復運行語句塊,循環(huán)條件不滿足時,退出循環(huán)。條件循環(huán)與while語句18/40案例:計算1+2+3+……+100的結果程序的運行結果如下:19/40案例:簡化例3_6的代碼20/40與while語句構建的條件循環(huán)不同,for…in…語句用于構建迭代循環(huán),其特點是會在一系列對象上進行迭代(Iterates),即它會遍歷可迭代對象中的每一個元素。for…in…語句的語法格式如下所示,同時為了表示程序之間的包含關系,語句塊需要向右縮進。for<循環(huán)變量>in<可迭代對象>:
語句塊迭代循環(huán)與for…in…語句21/40上述程序中,n被稱為循環(huán)變量,其值在區(qū)間[1,101)中進行整數(shù)對象的迭代,即從n=1開始重復運行s=s+n,直到最后n=100為止,程序的運行效果如下。案例:計算1+2+3+……+100的結果22/40由上述程序可知,使用內(nèi)置函數(shù)range()可以生成可以進行迭代的整數(shù)對象,range()函數(shù)的語法格式為:range(stop)或者:range(start,stop[,step])其中,參數(shù)start和參數(shù)stop分別表示生成區(qū)間[start,stop)的起始值和結束值,如果參數(shù)start沒有指定,則默認為0;參數(shù)step指的是由range()函數(shù)生成的可迭代對象之間的差值。內(nèi)置函數(shù)range()23/40上述程序中,使用range()函數(shù)生成了在區(qū)間[2,101)上差值為2的可迭代對象,即2、4、6、……、98、100,然后對其進行迭代循環(huán),依次將迭代得到元素賦值給n,并重復運行循環(huán)體內(nèi)的s=s+n,完成不斷累加的計算過程,程序的運行效果如下。案例:計算100以內(nèi)所有偶數(shù)的和24/40案例:簡化例3_7中的代碼25/40通過上一小節(jié)的學習可知,在Python語言中可以構建循環(huán)結構程序,以反復運行同一段語句塊中的代碼。這樣做的好處是可以消除程序中的重復代碼,提高程序的可讀性。與此同時,Python還提供了在循環(huán)結構中進行程序流程控制的語句:break語句和continue語句,接下來對它們進行逐一介紹。由break關鍵字構成的語句,被稱為break語句,它的作用是終止當前的循環(huán)結構,轉而運行該循環(huán)結構之后的程序代碼。流程控制中的break語句26/40程序的運行效果如下:案例:使用break中斷循環(huán)27/40以whileTrue引導的條件循環(huán),在循環(huán)體中一定要有用作終止循環(huán)的break語句,并在正確的時機被運行,否則就會造成循環(huán)體重復運行無法停止的現(xiàn)象,這種現(xiàn)象被稱作死循環(huán),例如下面的程序。通過按鍵盤上Ctrl+C組合鍵,可以強制停止當前程序的運行。死循環(huán)28/40由continue關鍵字構成的語句,被稱為continue語句,它的作用是終止本輪循環(huán)的運行,繼續(xù)運行當前循環(huán)結構的下一個輪次,直到循環(huán)結束。例如,編寫程序計算100以內(nèi)所有偶數(shù)的和,要求使用foriinrange(1,101)引導循環(huán)體,其程序如下所示。流程控制中的continue語句29/40Python中的循環(huán)結構程序也可以像分支結構一樣包含由else關鍵字引導的部分,具體內(nèi)容如下。在while引導的條件循環(huán)中使用else關鍵字,語法格式為:while條件表達式:
語句塊1[else:
語句塊2]上述結構的程序中,由else關鍵字引導的語句塊2,將在預設條件不成立即條件表達式的邏輯值為False時被運行。循環(huán)中的else語句30/40程序的運行結果如下:案例:判斷用戶輸入的是否為質數(shù)31/40在for引導的迭代循環(huán)中使用else關鍵字,語法格式為:for<循環(huán)變量>in<可迭代對象>:
語句塊1[else:
語句塊2]上述結構的程序中,由else關鍵字引導的語句塊2,將在可迭代對象中的所有元素都被遍歷,即沒有元素可供使用時被運行。for循環(huán)中引入else語句32/40程序的運行效果如下:案例:判斷質數(shù)(for循環(huán)實現(xiàn))33/40第4章程序的流程控制4.4結構嵌套程序中,一個分支或者循環(huán)結構的程序中包含另一個分支或者循環(huán)結構,稱作結構嵌套。例如程序例4_10、例4_12、例4_13,這些程序的循環(huán)結構中都包含if引導的分支結構,所以這些程序都屬于結構嵌套的范疇。在結構嵌套的程序中,需要特別關注的是循環(huán)結構的嵌套。程序結構的嵌套使用35/40程序的運行效果如下:案例:打印九九乘法表36/40第4章程序的流程控制4.5
pass語句pass語句是Python語言中一個非常特殊的語句,該語句運行后不會有任何實質性的功能,它的主要作用就是在語句塊不包含任何功能的時候保證程序的語法正確,例如以下程序(講解見后頁):程序中的pass語句38/40上述程序完成了一個求一元二次方程的根的程序的基本框架,由于程序中的所有分支并沒有具體內(nèi)容,程序運行后在輸入了方程的系數(shù)后,也不會有任何運行結果。但是從上述示例可以看出,pass語句可以在程序中保證整個程序的語法正確,即如果刪除上述程序中任意一處的pass語句都會導致Python解釋器認為該程序包含語法錯誤。程序在不斷完善的過程中,總會有一些地方需要暫時“空著”,而pass語句正是起到這個作用,所以也被稱作空語句。程序中的pass語句39/40第4章程序的流程控制4.6綜合案例:100以內(nèi)所有質數(shù)的和根據(jù)題目要求,為了能夠將100以內(nèi)所有的質數(shù)都找出來,需要構建區(qū)間在[2,100)上的迭代循環(huán),并在循環(huán)中判斷迭代得到的整數(shù)是否為質數(shù),如果是一個質數(shù)就進行累加,直到循環(huán)結束,程序如下所示:綜合案例:100以內(nèi)所有質數(shù)的和41/40第4章程序的流程控制4.7本章小結通過本章的學習,讀者應該了解并掌握了程序的3種基本控制結構:順序結構、分支結構和循環(huán)結構,以及用于程序流程控制的break、continue等關鍵字的相關知識。順序結構是最基本的程序結構,在順序結構中,程序按照從上往下的順序一條一條地運行。分支結構是在順序結構的程序中加入了判斷和選擇的功能,在Python中,使用關鍵字if、else和elif構建分支結構程序。與分支結構不同,循環(huán)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)療手術合同范本
- 合開店合同范本
- 衛(wèi)生間裝修工人合同范本
- 進廠入職合同范本
- 合伙投資合同范本范本
- 個人之間擔保合同范本
- 合法會員合同范例
- 運行總工績效合同范本
- 2025年常溫遠紅外陶瓷及制品項目建議書
- 廚房人員用工合同范本
- 交通法律與交通事故處理培訓課程與法律解析
- 廣西版四年級下冊美術教案
- 《換熱器及換熱原理》課件
- 兒童權利公約演示文稿課件
- UPVC排水管技術標準
- MSA-測量系統(tǒng)分析模板
- 血透室公休座談水腫的護理
- 急診預檢分診專家共識課件
- 廣州市海珠區(qū)事業(yè)單位考試歷年真題
- 2023年山西省太原市迎澤區(qū)校園招考聘用教師筆試題庫含答案詳解
- 2023中職27 嬰幼兒保育 賽題 模塊三 嬰幼兒早期學習支持(賽項賽題)
評論
0/150
提交評論