




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
流程控制及異常處理·
if語(yǔ)句·if語(yǔ)句的嵌套·循環(huán)語(yǔ)句·循環(huán)嵌套·跳轉(zhuǎn)語(yǔ)句·異常處理目錄頁(yè)5異常處理1程序的基本結(jié)構(gòu)2語(yǔ)句3分支結(jié)構(gòu)4循環(huán)結(jié)構(gòu)傳統(tǒng)的面向過(guò)程程序設(shè)計(jì)中有三種控制結(jié)構(gòu),即順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。即使在面向?qū)ο蟪绦蛟O(shè)計(jì)和事件驅(qū)動(dòng)程序的開(kāi)發(fā)中,也離不開(kāi)這三種基本結(jié)構(gòu)。目前為止所接觸的程序中,Python按照語(yǔ)句的順序執(zhí)行它們。如果想要改變語(yǔ)句流的執(zhí)行順序,必須讓程序根據(jù)不同的情況來(lái)做不同的事情。這是通過(guò)控制流語(yǔ)句來(lái)實(shí)現(xiàn)的,在Python中有三種控制流語(yǔ)句:if、for和while。1程序的基本結(jié)構(gòu)2.語(yǔ)句9.2.1賦值語(yǔ)句Python中不需要事先聲明變量名和類(lèi)型,可以直接賦值創(chuàng)造各種類(lèi)型的變量。進(jìn)行賦值就必須用到賦值語(yǔ)句。對(duì)變量進(jìn)行各種數(shù)學(xué)運(yùn)算,然后賦值給變量是比較常見(jiàn)的做法。9.2.2if語(yǔ)句Python程序設(shè)計(jì)中除了順序結(jié)構(gòu),還有分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。分支結(jié)構(gòu)可以采用if語(yǔ)句來(lái)完成。if語(yǔ)句首先要進(jìn)行條件判斷,根據(jù)判斷的結(jié)果為真還是假來(lái)選擇執(zhí)行哪一個(gè)語(yǔ)句。這種結(jié)構(gòu)稱(chēng)為選擇結(jié)構(gòu),或者分支結(jié)構(gòu)。如果條件為真,運(yùn)行一塊語(yǔ)句(稱(chēng)為if-塊),否則處理另外一塊語(yǔ)句(稱(chēng)為else-塊)??梢愿鶕?jù)需要選擇是否有else子句。【例9-1】求從鍵盤(pán)輸入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語(yǔ)句Python提供兩種基本的循環(huán)結(jié)構(gòu):while循環(huán)和for循環(huán)。當(dāng)條件為真時(shí),while語(yǔ)句允許重復(fù)執(zhí)行一塊語(yǔ)句。while語(yǔ)句一般用于循環(huán)次數(shù)未確定的情況,當(dāng)然循環(huán)次數(shù)已經(jīng)確定的情況也可以使用。while語(yǔ)句可以選擇是否有else從句。【例9-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程序開(kāi)發(fā)時(shí)應(yīng)用較多的技術(shù)??梢允褂煤?jiǎn)潔的方式快速生成滿(mǎn)足要求的列表。列表推導(dǎo)式的工作方式類(lèi)似于for循環(huán)。列表推導(dǎo)式的格式為:變量=[表達(dá)式for...in...if...]列表推導(dǎo)式的結(jié)構(gòu)是?個(gè)中括號(hào)里有?個(gè)表達(dá)式,后面接著是一個(gè)for語(yǔ)句,再接著是可以選擇的0個(gè)或多個(gè)for或者if語(yǔ)句。表達(dá)式可以是任意表達(dá)式,可以在列表中放?任意類(lèi)型的對(duì)象。返回結(jié)果將生成一個(gè)新的列表,這個(gè)列表在以if和for語(yǔ)句為上下?的表達(dá)式運(yùn)?完成之后產(chǎn)生。3分支結(jié)構(gòu)9.3.1單分支結(jié)構(gòu)單分支結(jié)構(gòu)是最簡(jiǎn)單的一種分支結(jié)構(gòu),語(yǔ)法如下:if條件表達(dá)式:語(yǔ)句塊注意,條件判斷表達(dá)式后面冒號(hào)不能少。當(dāng)表達(dá)式的值等價(jià)于True時(shí),執(zhí)行語(yǔ)句塊,否則語(yǔ)句塊不執(zhí)行。單分支結(jié)構(gòu)的流程圖如圖9-1所示。。9.3.2雙分支結(jié)構(gòu)雙分支結(jié)構(gòu)的語(yǔ)法為:if判斷條件: 代碼塊1else: 代碼段2當(dāng)表達(dá)式的值等價(jià)于True時(shí),執(zhí)行語(yǔ)句塊1,否則執(zhí)行語(yǔ)句塊2。雙分支結(jié)構(gòu)的流程圖如圖9-2所示。9.3.3多分支結(jié)構(gòu)多分支選擇結(jié)構(gòu)可以實(shí)現(xiàn)更多的選擇,進(jìn)行選擇結(jié)構(gòu)的嵌套,能處理更復(fù)雜的問(wèn)題。多分支選擇結(jié)構(gòu)的語(yǔ)法為:if判斷條件1:
代碼段1elif判斷條件2:
代碼段2elif判斷條件3:
代碼段3...else:
代碼段n其中elif為elseif的縮寫(xiě)。
9.3.4if...else三元表達(dá)式還可以使用簡(jiǎn)化的三元表達(dá)式來(lái)實(shí)現(xiàn)if...else語(yǔ)句。原結(jié)構(gòu)為:if判斷條件: 代碼塊1else:代碼段2使用三元表達(dá)式格式后是:代碼塊1if判斷條件else代碼段29.3.5if嵌套Python中通過(guò)if嵌套可以實(shí)現(xiàn)程序中條件語(yǔ)句的嵌套邏輯。格式if判斷條件1:#外層條件
代碼段1if判斷條件2:#內(nèi)層條件
代碼段2...3.1.4if嵌套執(zhí)行if嵌套時(shí),若外層判斷條件(判斷條件1)的值為T(mén)rue,執(zhí)行代碼段1,并對(duì)內(nèi)層判斷條件(判斷條件2)進(jìn)行判斷:若判斷條件2的值為T(mén)rue,則執(zhí)行代碼段2,否則跳出內(nèi)層條件結(jié)構(gòu),順序執(zhí)行外層條件結(jié)構(gòu)中內(nèi)層條件結(jié)構(gòu)之后的代碼;若外層判斷條件的值為False,直接跳過(guò)條件語(yǔ)句,既不執(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序列或其它迭代對(duì)象:循環(huán)體在一序列的對(duì)象上迭代,即逐一使用序列中的每個(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)的語(yǔ)法為: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語(yǔ)句是在循環(huán)中跳出一層循環(huán),一般和if語(yǔ)句配合使用,在達(dá)到一定條件時(shí)跳出循環(huán)。continue語(yǔ)句的作用是跳出本次循環(huán)并結(jié)束continue語(yǔ)句之后的所有語(yǔ)句的執(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)在編寫(xiě)程序的時(shí)候,有可能會(huì)產(chǎn)生一些錯(cuò)誤,如除以零,使用的變量未定義,文件不存在等。異常就是程序運(yùn)行時(shí)引發(fā)的錯(cuò)誤。程序如果不能正確處理會(huì)導(dǎo)致程序終止。為了解決這些異常事件,可以增加if語(yǔ)句,但是沒(méi)效率并且不是很靈活。合理使用異常處理結(jié)構(gòu)能使程序更加健壯,提交容錯(cuò)性。9.5.2捕捉異常:try...excepttry...except結(jié)構(gòu)是最基本的一種結(jié)構(gòu),把可能出現(xiàn)異常的語(yǔ)句放在try子句中,用except子句捕捉相應(yīng)異常并且把錯(cuò)誤處理語(yǔ)句放在ecept子句中。當(dāng)try子句沒(méi)有出現(xiàn)異常則繼續(xù)往下執(zhí)行后續(xù)語(yǔ)句。如果發(fā)生異常且用except捕獲則執(zhí)行相應(yīng)子句中對(duì)應(yīng)的異常處理的執(zhí)行代碼。如果沒(méi)有被except捕獲到,那么就往外層拋出。如果直到最外層都沒(méi)有捕獲到,則程序終止。9.5.3異常終止:try...finally在try...finally結(jié)構(gòu)中,finally子句無(wú)論是否拋出異常都會(huì)執(zhí)行,用來(lái)做一些清理工作,進(jìn)行資源的釋放??梢酝瑫r(shí)使用except子句和finally子句。9.5.4拋出異常:raise語(yǔ)句1.可以使用raise語(yǔ)句引發(fā)異常,可以用一個(gè)類(lèi)或者實(shí)例參數(shù)調(diào)用。2.可以自定義異常類(lèi)型并引發(fā)。9.5.5assert異常Assert(斷言)是一種特殊的異常處理方式,在形式上更簡(jiǎn)單一些,能進(jìn)行簡(jiǎn)單的異常處理和確認(rèn),并可以與標(biāo)準(zhǔn)的異常處理方式結(jié)合使用。斷言可以在條件不滿(mǎn)足程序運(yùn)行的情況下直接返回錯(cuò)誤,而不必等待程序運(yùn)行后出現(xiàn)崩潰的情況。斷言是語(yǔ)法是:Assert表達(dá)式[,參數(shù)]當(dāng)判斷表達(dá)式的值為真時(shí),什么都不用做。當(dāng)判斷表達(dá)式的值為假時(shí),拋出異常。一般用于對(duì)運(yùn)行條件進(jìn)行驗(yàn)證,僅當(dāng)_debug_為真時(shí)有效。當(dāng)Python腳本以-O選項(xiàng)編譯成為字節(jié)碼文件時(shí),assert語(yǔ)句將被移除。9.5.6沒(méi)有捕捉到異常:else如果想在沒(méi)有觸發(fā)異常的時(shí)候執(zhí)?一些代碼,可以通過(guò)一
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 提升人際交往能力增強(qiáng)職場(chǎng)競(jìng)爭(zhēng)力計(jì)劃
- 幼兒教學(xué)活動(dòng)結(jié)束環(huán)節(jié)的設(shè)計(jì)與實(shí)施
- 《第三單元 固體和液體:10 固體的混合與分離》教學(xué)設(shè)計(jì)-2024-2025學(xué)年蘇教版科學(xué)三年級(jí)上冊(cè)
- 科技會(huì)展環(huán)境保護(hù)與節(jié)能減排考核試卷
- 煉焦工藝的能源審計(jì)與節(jié)能潛力分析考核試卷
- 電容器在電力電子器件中的保護(hù)作用考核試卷
- 碳納米管復(fù)合化學(xué)纖維的制造與應(yīng)用技術(shù)研究考核試卷
- 服務(wù)機(jī)器人的社會(huì)認(rèn)知影響考核試卷
- 電子電路的工業(yè)物聯(lián)網(wǎng)設(shè)備管理考核試卷
- 服務(wù)標(biāo)準(zhǔn)化在美術(shù)院校的應(yīng)用考核試卷
- 2025年教師招聘考試公共基礎(chǔ)知識(shí)心理學(xué)試題200題及答案
- 早產(chǎn)兒腦室內(nèi)出血預(yù)防專(zhuān)家共識(shí)(2025)解讀 2
- 建筑智能化工程行業(yè)運(yùn)營(yíng)狀況及發(fā)展前景分析報(bào)告2025年
- 2024年山東司法警官職業(yè)學(xué)院招聘筆試真題
- 2025屆江蘇省南京市高三語(yǔ)文一模作文題目審題立意及高分范文:彎道與陡坡
- 2025年浙江長(zhǎng)征職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能考試題庫(kù)含答案
- 浙江紹興職業(yè)技術(shù)學(xué)院招聘真題2024
- 浙江省外國(guó)語(yǔ)實(shí)驗(yàn)學(xué)校2025屆中考化學(xué)模擬試卷含解析
- 湖北省武漢市2024-2025學(xué)年高三下學(xué)期2月調(diào)研考試英語(yǔ)試題(含解析無(wú)聽(tīng)力原文及音頻)
- 醫(yī)院保安員培訓(xùn)
- 依法執(zhí)業(yè)與醫(yī)療安全培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論