Python第四章流程控制_第1頁
Python第四章流程控制_第2頁
Python第四章流程控制_第3頁
Python第四章流程控制_第4頁
Python第四章流程控制_第5頁
已閱讀5頁,還剩41頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、2022-3-161 概述概述 條件語句條件語句 循環(huán)語句循環(huán)語句 跳轉(zhuǎn)語句跳轉(zhuǎn)語句 綜合實(shí)例綜合實(shí)例2022-3-162 之前編寫的程序都是順序結(jié)構(gòu)的,即依次之前編寫的程序都是順序結(jié)構(gòu)的,即依次執(zhí)行程序中的每條語句。執(zhí)行程序中的每條語句。 但實(shí)際的程序并非如此簡單,經(jīng)常要用到但實(shí)際的程序并非如此簡單,經(jīng)常要用到條件判斷或反復(fù)執(zhí)行某一個(gè)程序段,這就條件判斷或反復(fù)執(zhí)行某一個(gè)程序段,這就要用到條件語句和循環(huán)語句。要用到條件語句和循環(huán)語句。 本章介紹條件語句、循環(huán)語句及跳轉(zhuǎn)語句本章介紹條件語句、循環(huán)語句及跳轉(zhuǎn)語句。2022-3-163 條件語句能夠改變條件語句能夠改變Python程序的執(zhí)行流程序的執(zhí)

2、行流程,是執(zhí)行這個(gè)代碼塊還是另一個(gè)代碼塊程,是執(zhí)行這個(gè)代碼塊還是另一個(gè)代碼塊。 凡是需要判斷來確定下一步如何執(zhí)行的程凡是需要判斷來確定下一步如何執(zhí)行的程序都要使用條件語句。序都要使用條件語句。2022-3-164(1)單分支)單分支 格式:格式:if(表達(dá)式表達(dá)式): 語句序列語句序列 功能:功能:如果條件表達(dá)如果條件表達(dá)式的值為真,則執(zhí)行式的值為真,則執(zhí)行后面的語句序列。后面的語句序列。2022-3-1652022-3-166執(zhí)行結(jié)果:執(zhí)行結(jié)果: 格式:格式:if(表達(dá)式表達(dá)式): 語句序列語句序列1else: 語句序列語句序列2功能:功能:如果如果“條件表達(dá)式條件表達(dá)式”的判斷結(jié)果為真,則

3、執(zhí)行的判斷結(jié)果為真,則執(zhí)行語句序列語句序列1;否則,執(zhí)行;否則,執(zhí)行語句序列語句序列2。 2022-3-167 判斷用戶的輸入,如果輸入的數(shù)值大于判斷用戶的輸入,如果輸入的數(shù)值大于0,則在,則在屏幕上顯示屏幕上顯示“正數(shù)正數(shù)”;否則在屏幕上顯示;否則在屏幕上顯示“不是不是正數(shù)正數(shù)”。2022-3-168執(zhí)行結(jié)果:執(zhí)行結(jié)果: if/elif語句是語句是if語句的擴(kuò)展版本,它包含多個(gè)條語句的擴(kuò)展版本,它包含多個(gè)條件,用于作出復(fù)雜的決策。件,用于作出復(fù)雜的決策。 例例4-3:假設(shè)航空公司提供了兒童優(yōu)惠票價(jià):不:假設(shè)航空公司提供了兒童優(yōu)惠票價(jià):不超過超過2歲的兒童免票;歲的兒童免票;2-13歲的兒童打

4、折;歲的兒童打折;13歲及以上兒童與成人同價(jià)。歲及以上兒童與成人同價(jià)。2022-3-169 if 語句內(nèi)還可以使用語句內(nèi)還可以使用if語句,這樣就構(gòu)成了語句,這樣就構(gòu)成了if語語句的嵌套。句的嵌套。 格式:格式:if(表達(dá)式表達(dá)式1): if(表達(dá)式表達(dá)式2):語句序列語句序列1 elif(表達(dá)式表達(dá)式3):語句序列語句序列2 else:語句序列語句序列3elif(表達(dá)式表達(dá)式n): else: 2022-3-16102022-3-1611 Python也有類似于也有類似于C+的條件表達(dá)式,的條件表達(dá)式,其格式為:其格式為: 表達(dá)式表達(dá)式1 if 表達(dá)式表達(dá)式2 else 表達(dá)式表達(dá)式3 功能

5、:功能:先計(jì)算表達(dá)式先計(jì)算表達(dá)式2的值,如果其值為真的值,如果其值為真,則表達(dá)式,則表達(dá)式1的值就是整個(gè)表達(dá)式的值;否的值就是整個(gè)表達(dá)式的值;否則表達(dá)式則表達(dá)式3的值就是整個(gè)表達(dá)式的值。的值就是整個(gè)表達(dá)式的值。2022-3-16122022-3-1613執(zhí)行結(jié)果:執(zhí)行結(jié)果: 課堂練習(xí)一課堂練習(xí)一 說明:說明:Python 2.x中硬性規(guī)定,字符串比整型數(shù)大中硬性規(guī)定,字符串比整型數(shù)大,但,但Python 3.x這兩種類型不能比較,需要這兩種類型不能比較,需要轉(zhuǎn)換為同一類型。轉(zhuǎn)換為同一類型。2022-3-1614 循環(huán)用于重復(fù)地執(zhí)行代碼塊。循環(huán)用于重復(fù)地執(zhí)行代碼塊。 Python中有兩種主要的循

6、環(huán):中有兩種主要的循環(huán):for循環(huán)和循環(huán)和while循環(huán)。循環(huán)。 for循環(huán)通常比循環(huán)通常比while循環(huán)更容易使用,也循環(huán)更容易使用,也不那么容易出錯(cuò),但沒有不那么容易出錯(cuò),但沒有while循環(huán)靈活循環(huán)靈活。2022-3-1615 格式:格式:for 變量變量 in 集合集合: 功能:每次從集合中取出一個(gè)值,并把值賦給變量。集合功能:每次從集合中取出一個(gè)值,并把值賦給變量。集合可以是元組、列表、字典等數(shù)據(jù)結(jié)構(gòu)??梢允窃M、列表、字典等數(shù)據(jù)結(jié)構(gòu)。 說明:說明: for循環(huán)通常與循環(huán)通常與range()函數(shù)一起使用,函數(shù)一起使用,range()函數(shù)返回一個(gè)函數(shù)返回一個(gè)列表,列表,for循環(huán)遍歷列

7、表中的元素。循環(huán)遍歷列表中的元素。 Range()函數(shù)格式:函數(shù)格式:range(start,stop,step),參數(shù),參數(shù)start表示列表開始值,默認(rèn)為表示列表開始值,默認(rèn)為0;參數(shù);參數(shù)stop表示列表結(jié)束值,表示列表結(jié)束值,不能缺省,循環(huán)到不能缺省,循環(huán)到stop-1停止;參數(shù)停止;參數(shù)step表示步長,默認(rèn)值為表示步長,默認(rèn)值為1。2022-3-16162022-3-16172022-3-1618執(zhí)行結(jié)果:執(zhí)行結(jié)果: 格式:格式:while 條件表達(dá)式條件表達(dá)式: 語句序列語句序列 功能:當(dāng)條件表達(dá)式功能:當(dāng)條件表達(dá)式為真時(shí),依次執(zhí)行為真時(shí),依次執(zhí)行while中的語句,直中的語句,

8、直到循環(huán)表達(dá)式的值為到循環(huán)表達(dá)式的值為假。假。2022-3-16192022-3-1620執(zhí)行結(jié)果:執(zhí)行結(jié)果: 一般來說,固定次數(shù)的循環(huán)問題使用一般來說,固定次數(shù)的循環(huán)問題使用for循循環(huán)和環(huán)和while循環(huán)都可以解決,而循環(huán)次數(shù)循環(huán)都可以解決,而循環(huán)次數(shù)不固定的循環(huán)問題只能使用不固定的循環(huán)問題只能使用while循環(huán)解循環(huán)解決。決。2022-3-16212022-3-1622使用使用for循環(huán):循環(huán):使用使用while循環(huán):循環(huán):2022-3-1623用用for循環(huán):循環(huán):用用while循環(huán):循環(huán): 計(jì)算未知個(gè)數(shù)數(shù)字的總和就無法使用計(jì)算未知個(gè)數(shù)數(shù)字的總和就無法使用for循循環(huán)完成了,只能使用環(huán)

9、完成了,只能使用while循環(huán)。循環(huán)。2022-3-1624 與條件語句相同,循環(huán)也可以嵌套。與條件語句相同,循環(huán)也可以嵌套。 例例4-12:輸出乘法九九表。:輸出乘法九九表。2022-3-16252022-3-1626 與與C C、C+C+類似,在類似,在PythonPython中除了提供順序中除了提供順序執(zhí)行和選擇控制、循環(huán)控制語句外,還提執(zhí)行和選擇控制、循環(huán)控制語句外,還提供了一類跳轉(zhuǎn)語句。這類語句的總體功能供了一類跳轉(zhuǎn)語句。這類語句的總體功能是中斷當(dāng)前某段程序的執(zhí)行,并跳轉(zhuǎn)到程是中斷當(dāng)前某段程序的執(zhí)行,并跳轉(zhuǎn)到程序的其他位置繼續(xù)執(zhí)行。序的其他位置繼續(xù)執(zhí)行。 PythonPython的跳

10、轉(zhuǎn)語句有:的跳轉(zhuǎn)語句有:breakbreak語句和語句和continuecontinue語句。語句。2022-3-1627 breakbreak語句的作用是:語句的作用是:結(jié)束當(dāng)前正在執(zhí)行的循環(huán)(結(jié)束當(dāng)前正在執(zhí)行的循環(huán)(forfor、whilewhile),),轉(zhuǎn)而執(zhí)行這些結(jié)構(gòu)后面的語句。轉(zhuǎn)而執(zhí)行這些結(jié)構(gòu)后面的語句。 。 continuecontinue語句的作用是:語句的作用是:結(jié)束當(dāng)前正在執(zhí)行的這一結(jié)束當(dāng)前正在執(zhí)行的這一次循環(huán)(次循環(huán)(forfor、whilewhile),接著執(zhí)行下一次循環(huán)。即),接著執(zhí)行下一次循環(huán)。即跳過循環(huán)體中尚未執(zhí)行的語句,接著進(jìn)行下一次是跳過循環(huán)體中尚未執(zhí)行的語句

11、,接著進(jìn)行下一次是否執(zhí)行循環(huán)的判定。否執(zhí)行循環(huán)的判定。 continuecontinue語句和語句和breakbreak語句的區(qū)別是:語句的區(qū)別是:continuecontinue語語句只結(jié)束本次循環(huán),而不是終止整個(gè)循環(huán)的執(zhí)行。句只結(jié)束本次循環(huán),而不是終止整個(gè)循環(huán)的執(zhí)行。而而breakbreak語句則是結(jié)束整個(gè)循環(huán),不再進(jìn)行條件判語句則是結(jié)束整個(gè)循環(huán),不再進(jìn)行條件判斷。斷。2022-3-16282022-3-16292022-3-1630執(zhí)行結(jié)果:執(zhí)行結(jié)果: 課堂練習(xí)二2022-3-16311、求任意非負(fù)數(shù)的平方根。沒有精確算法,、求任意非負(fù)數(shù)的平方根。沒有精確算法,常用的近似算法有:常用的近

12、似算法有: 窮舉法窮舉法 二分法二分法 牛頓牛頓拉夫遜算法拉夫遜算法2022-3-1632 取較小的步長生成猜測值(順序地);取較小的步長生成猜測值(順序地); 檢查是否足夠接近結(jié)果。檢查是否足夠接近結(jié)果。 反復(fù)執(zhí)行上述步驟。反復(fù)執(zhí)行上述步驟。2022-3-16332022-3-1634執(zhí)行結(jié)果:執(zhí)行結(jié)果:2022-3-1635 在窮舉法中,步長可以取任意小數(shù)值,但在窮舉法中,步長可以取任意小數(shù)值,但是:是:如果步長太小了,程序執(zhí)行會花較長時(shí)間如果步長太小了,程序執(zhí)行會花較長時(shí)間如果步長太大了,可能會跳過最近似的答案如果步長太大了,可能會跳過最近似的答案 還有更有效的方法。還有更有效的方法。

13、根據(jù)數(shù)學(xué)定義,根據(jù)數(shù)學(xué)定義,x的平方根位于的平方根位于0 x之間之間。 盡管在窮舉法中,我們從盡管在窮舉法中,我們從0開始進(jìn)行猜測,開始進(jìn)行猜測,但實(shí)際上可以取這個(gè)范圍的中間值。但實(shí)際上可以取這個(gè)范圍的中間值。 如果幸運(yùn),這個(gè)答案即最近似的結(jié)果。如果幸運(yùn),這個(gè)答案即最近似的結(jié)果。2022-3-16362022-3-1637 如果猜測值不足夠近似,太大或太小怎么辦?如果猜測值不足夠近似,太大或太小怎么辦? 如果如果g*2x,則,則g太大,現(xiàn)在應(yīng)查找:太大,現(xiàn)在應(yīng)查找: 如果新的如果新的g,例如,例如g*2x,則,則g太小了,應(yīng)查太小了,應(yīng)查找:找: 每次減少值的范圍的一半。每次減少值的范圍的一半

14、。2022-3-1638執(zhí)行結(jié)果:執(zhí)行結(jié)果: 二分查找算法從根本上減少了計(jì)算時(shí)間;二分查找算法從根本上減少了計(jì)算時(shí)間; 二分查找算法必須用于有序的數(shù)據(jù)。二分查找算法必須用于有序的數(shù)據(jù)。2022-3-1639 通常,求一個(gè)變量多項(xiàng)式的根的近似算法為:通常,求一個(gè)變量多項(xiàng)式的根的近似算法為: 求求r使得使得p(r)=0 例如,求例如,求24的平方根,即求的平方根,即求p(x)=x2-24的根的根,則牛頓近似公式為:,則牛頓近似公式為: 具體到本例,近似公式為:具體到本例,近似公式為:g-(g2-24)/2g2022-3-16402022-3-1641執(zhí)行結(jié)果:執(zhí)行結(jié)果: 由用戶想一個(gè)由用戶想一個(gè)0100之間的整數(shù)(包括之間的整數(shù)(包括0,不包括,不包括100),由計(jì)算機(jī)來猜。由用戶),由計(jì)算機(jī)來猜。由用戶給一個(gè)輸入,是低了還是高了,使用用二給一個(gè)輸入,是低了還是高了,使用用二分查找算法,計(jì)算機(jī)將

溫馨提示

  • 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

提交評論