大學(xué)計(jì)算機(jī)基礎(chǔ)及應(yīng)用(Python篇)課件:流程控制及異常處理_第1頁
大學(xué)計(jì)算機(jī)基礎(chǔ)及應(yīng)用(Python篇)課件:流程控制及異常處理_第2頁
大學(xué)計(jì)算機(jī)基礎(chǔ)及應(yīng)用(Python篇)課件:流程控制及異常處理_第3頁
大學(xué)計(jì)算機(jī)基礎(chǔ)及應(yīng)用(Python篇)課件:流程控制及異常處理_第4頁
大學(xué)計(jì)算機(jī)基礎(chǔ)及應(yīng)用(Python篇)課件:流程控制及異常處理_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

流程控制及異常處理·

if語句·if語句的嵌套·循環(huán)語句·循環(huán)嵌套·跳轉(zhuǎn)語句·異常處理目錄頁5異常處理1程序的基本結(jié)構(gòu)2語句3分支結(jié)構(gòu)4循環(huán)結(jié)構(gòu)傳統(tǒng)的面向過程程序設(shè)計(jì)中有三種控制結(jié)構(gòu),即順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。即使在面向?qū)ο蟪绦蛟O(shè)計(jì)和事件驅(qū)動(dòng)程序的開發(fā)中,也離不開這三種基本結(jié)構(gòu)。目前為止所接觸的程序中,Python按照語句的順序執(zhí)行它們。如果想要改變語句流的執(zhí)行順序,必須讓程序根據(jù)不同的情況來做不同的事情。這是通過控制流語句來實(shí)現(xiàn)的,在Python中有三種控制流語句:if、for和while。1程序的基本結(jié)構(gòu)2.語句9.2.1賦值語句Python中不需要事先聲明變量名和類型,可以直接賦值創(chuàng)造各種類型的變量。進(jìn)行賦值就必須用到賦值語句。對變量進(jìn)行各種數(shù)學(xué)運(yùn)算,然后賦值給變量是比較常見的做法。9.2.2if語句Python程序設(shè)計(jì)中除了順序結(jié)構(gòu),還有分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。分支結(jié)構(gòu)可以采用if語句來完成。if語句首先要進(jìn)行條件判斷,根據(jù)判斷的結(jié)果為真還是假來選擇執(zhí)行哪一個(gè)語句。這種結(jié)構(gòu)稱為選擇結(jié)構(gòu),或者分支結(jié)構(gòu)。如果條件為真,運(yùn)行一塊語句(稱為if-塊),否則處理另外一塊語句(稱為else-塊)??梢愿鶕?jù)需要選擇是否有else子句?!纠?-1】求從鍵盤輸入a,b,求a,b的最大值。程序代碼:a=int(input('a='))b=int(input('b='))ifa>b:max=aelse:max=bprint(max)程序輸入:a=3b=5執(zhí)行結(jié)果:59.2.3for語句Python提供兩種基本的循環(huán)結(jié)構(gòu):while循環(huán)和for循環(huán)。當(dāng)條件為真時(shí),while語句允許重復(fù)執(zhí)行一塊語句。while語句一般用于循環(huán)次數(shù)未確定的情況,當(dāng)然循環(huán)次數(shù)已經(jīng)確定的情況也可以使用。while語句可以選擇是否有else從句?!纠?-2】求1+2+3...+100的和。程序代碼:x,sum=1,0whilex<=100:

sum+=x

x+=1print(sum)執(zhí)行結(jié)果:50509.2.4列表推導(dǎo)式列表推導(dǎo)式是Python程序開發(fā)時(shí)應(yīng)用較多的技術(shù)。可以使用簡潔的方式快速生成滿足要求的列表。列表推導(dǎo)式的工作方式類似于for循環(huán)。列表推導(dǎo)式的格式為:變量=[表達(dá)式for...in...if...]列表推導(dǎo)式的結(jié)構(gòu)是?個(gè)中括號里有?個(gè)表達(dá)式,后面接著是一個(gè)for語句,再接著是可以選擇的0個(gè)或多個(gè)for或者if語句。表達(dá)式可以是任意表達(dá)式,可以在列表中放?任意類型的對象。返回結(jié)果將生成一個(gè)新的列表,這個(gè)列表在以if和for語句為上下?的表達(dá)式運(yùn)?完成之后產(chǎn)生。3分支結(jié)構(gòu)9.3.1單分支結(jié)構(gòu)單分支結(jié)構(gòu)是最簡單的一種分支結(jié)構(gòu),語法如下:if條件表達(dá)式:語句塊注意,條件判斷表達(dá)式后面冒號不能少。當(dāng)表達(dá)式的值等價(jià)于True時(shí),執(zhí)行語句塊,否則語句塊不執(zhí)行。單分支結(jié)構(gòu)的流程圖如圖9-1所示。。9.3.2雙分支結(jié)構(gòu)雙分支結(jié)構(gòu)的語法為:if判斷條件: 代碼塊1else: 代碼段2當(dāng)表達(dá)式的值等價(jià)于True時(shí),執(zhí)行語句塊1,否則執(zhí)行語句塊2。雙分支結(jié)構(gòu)的流程圖如圖9-2所示。9.3.3多分支結(jié)構(gòu)多分支選擇結(jié)構(gòu)可以實(shí)現(xiàn)更多的選擇,進(jìn)行選擇結(jié)構(gòu)的嵌套,能處理更復(fù)雜的問題。多分支選擇結(jié)構(gòu)的語法為:if判斷條件1:

代碼段1elif判斷條件2:

代碼段2elif判斷條件3:

代碼段3...else:

代碼段n其中elif為elseif的縮寫。

9.3.4if...else三元表達(dá)式還可以使用簡化的三元表達(dá)式來實(shí)現(xiàn)if...else語句。原結(jié)構(gòu)為:if判斷條件: 代碼塊1else:代碼段2使用三元表達(dá)式格式后是:代碼塊1if判斷條件else代碼段29.3.5if嵌套Python中通過if嵌套可以實(shí)現(xiàn)程序中條件語句的嵌套邏輯。格式if判斷條件1:#外層條件

代碼段1if判斷條件2:#內(nèi)層條件

代碼段2...3.1.4if嵌套執(zhí)行if嵌套時(shí),若外層判斷條件(判斷條件1)的值為True,執(zhí)行代碼段1,并對內(nèi)層判斷條件(判斷條件2)進(jìn)行判斷:若判斷條件2的值為True,則執(zhí)行代碼段2,否則跳出內(nèi)層條件結(jié)構(gòu),順序執(zhí)行外層條件結(jié)構(gòu)中內(nèi)層條件結(jié)構(gòu)之后的代碼;若外層判斷條件的值為False,直接跳過條件語句,既不執(zhí)行代碼段1,也不執(zhí)行內(nèi)層的條件結(jié)構(gòu)。if嵌套的執(zhí)行流程9.4循環(huán)結(jié)構(gòu)9.4.1for循環(huán)for循環(huán)是Python提供的兩種循環(huán)結(jié)構(gòu)之一,編程時(shí)優(yōu)先考慮使用這種格式。1.for循環(huán)基本格式為:for變量in序列或其它迭代對象:循環(huán)體在一序列的對象上迭代,即逐一使用序列中的每個(gè)項(xiàng)目。9.4.2while循環(huán)while循環(huán)是Python提供的另外一種循環(huán)結(jié)構(gòu)。同樣可以選擇是否帶else子句,當(dāng)不是使用break退出循環(huán)而是循環(huán)條件不成立導(dǎo)致循環(huán)結(jié)束的情況下會(huì)執(zhí)行else子句。while循環(huán)的語法為:while表達(dá)式:循環(huán)體[else:else子句]使用while循環(huán)時(shí)注意在循環(huán)前定義循環(huán)變量初值,在循環(huán)體內(nèi)進(jìn)行循環(huán)變量的增值。9.4.3循環(huán)控制:break和continuebreak語句是在循環(huán)中跳出一層循環(huán),一般和if語句配合使用,在達(dá)到一定條件時(shí)跳出循環(huán)。continue語句的作用是跳出本次循環(huán)并結(jié)束continue語句之后的所有語句的執(zhí)行,然后繼續(xù)下一次循環(huán)。9.4.4嵌套循環(huán)循環(huán)的嵌套就是在一個(gè)循環(huán)中嵌套另外一個(gè)循環(huán)。。9.5異常處理9.5.1異常處理基本結(jié)構(gòu)在編寫程序的時(shí)候,有可能會(huì)產(chǎn)生一些錯(cuò)誤,如除以零,使用的變量未定義,文件不存在等。異常就是程序運(yùn)行時(shí)引發(fā)的錯(cuò)誤。程序如果不能正確處理會(huì)導(dǎo)致程序終止。為了解決這些異常事件,可以增加if語句,但是沒效率并且不是很靈活。合理使用異常處理結(jié)構(gòu)能使程序更加健壯,提交容錯(cuò)性。9.5.2捕捉異常:try...excepttry...except結(jié)構(gòu)是最基本的一種結(jié)構(gòu),把可能出現(xiàn)異常的語句放在try子句中,用except子句捕捉相應(yīng)異常并且把錯(cuò)誤處理語句放在ecept子句中。當(dāng)try子句沒有出現(xiàn)異常則繼續(xù)往下執(zhí)行后續(xù)語句。如果發(fā)生異常且用except捕獲則執(zhí)行相應(yīng)子句中對應(yīng)的異常處理的執(zhí)行代碼。如果沒有被except捕獲到,那么就往外層拋出。如果直到最外層都沒有捕獲到,則程序終止。9.5.3異常終止:try...finally在try...finally結(jié)構(gòu)中,finally子句無論是否拋出異常都會(huì)執(zhí)行,用來做一些清理工作,進(jìn)行資源的釋放??梢酝瑫r(shí)使用except子句和finally子句。9.5.4拋出異常:raise語句1.可以使用raise語句引發(fā)異常,可以用一個(gè)類或者實(shí)例參數(shù)調(diào)用。2.可以自定義異常類型并引發(fā)。9.5.5assert異常Assert(斷言)是一種特殊的異常處理方式,在形式上更簡單一些,能進(jìn)行簡單的異常處理和確認(rèn),并可以與標(biāo)準(zhǔn)的異常處理方式結(jié)合使用。斷言可以在條件不滿足程序運(yùn)行的情況下直接返回錯(cuò)誤,而不必等待程序運(yùn)行后出現(xiàn)崩潰的情況。斷言是語法是:Assert表達(dá)式[,參數(shù)]當(dāng)判斷表達(dá)式的值為真時(shí),什么都不用做。當(dāng)判斷表達(dá)式的值為假時(shí),拋出異常。一般用于對運(yùn)行條件進(jìn)行驗(yàn)證,僅當(dāng)_debug_為真時(shí)有效。當(dāng)Python腳本以-O選項(xiàng)編譯成為字節(jié)碼文件時(shí),assert語句將被移除。9.5.6沒有捕捉到異常:else如果想在沒有觸發(fā)異常的時(shí)候執(zhí)?一些代碼,可以通過一

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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

提交評論