Python程序設(shè)計(jì)基礎(chǔ)教程(微課版) 課件 第3章 - Python控制結(jié)構(gòu)_第1頁(yè)
Python程序設(shè)計(jì)基礎(chǔ)教程(微課版) 課件 第3章 - Python控制結(jié)構(gòu)_第2頁(yè)
Python程序設(shè)計(jì)基礎(chǔ)教程(微課版) 課件 第3章 - Python控制結(jié)構(gòu)_第3頁(yè)
Python程序設(shè)計(jì)基礎(chǔ)教程(微課版) 課件 第3章 - Python控制結(jié)構(gòu)_第4頁(yè)
Python程序設(shè)計(jì)基礎(chǔ)教程(微課版) 課件 第3章 - Python控制結(jié)構(gòu)_第5頁(yè)
已閱讀5頁(yè),還剩45頁(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程序設(shè)計(jì)第3章Python控制結(jié)構(gòu)學(xué)習(xí)目標(biāo)理解Python選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、異常處理的使用場(chǎng)景掌握選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、異常處理的語(yǔ)法知識(shí)目標(biāo)能夠正確分析控制結(jié)構(gòu)的執(zhí)行結(jié)果能夠選擇合適的控制結(jié)構(gòu)處理實(shí)際問(wèn)題能力目標(biāo)計(jì)劃與執(zhí)行力的重要性良好的防御性編碼習(xí)慣情感態(tài)度與價(jià)值觀選擇結(jié)構(gòu):if語(yǔ)句01020403循環(huán)結(jié)構(gòu):while/for循環(huán)結(jié)構(gòu):進(jìn)階使用異常與異常處理目

錄選擇結(jié)構(gòu):if語(yǔ)句01020403循環(huán)結(jié)構(gòu):while/for循環(huán)結(jié)構(gòu):進(jìn)階使用異常與異常處理目

錄單分支結(jié)構(gòu)雙分支結(jié)構(gòu)多分支結(jié)構(gòu)結(jié)構(gòu)化程序設(shè)計(jì)三大控制結(jié)構(gòu)45順序結(jié)構(gòu)選擇結(jié)構(gòu)條件成立YesNo循環(huán)結(jié)構(gòu)條件成立NoYes自上而下不可兼得重復(fù)執(zhí)行根據(jù)特定條件,有選擇的執(zhí)行某些代碼關(guān)鍵字ifelifelse3.1選擇結(jié)構(gòu)45當(dāng)某項(xiàng)條件滿足時(shí)就必須執(zhí)行某項(xiàng)操作,不需要考慮條件成立之外的情況由一個(gè)if語(yǔ)句構(gòu)成3.1.1單分支結(jié)構(gòu)45if條件表達(dá)式:代碼塊判斷用戶輸入的數(shù)字是否為偶數(shù),如果是,則打印“偶數(shù)”,然后程序結(jié)束不需要處理非偶數(shù)的情況-->單分支結(jié)構(gòu)3.1.1單分支結(jié)構(gòu)46a=int(input('請(qǐng)輸入一個(gè)整數(shù):'))ifa%2==0:print('偶數(shù)')示例3-1易錯(cuò)1:遺漏冒號(hào)易錯(cuò)2:縮進(jìn)錯(cuò)誤同時(shí)考慮條件成立、不成立時(shí)各需要執(zhí)行哪些操作3.1.2雙分支結(jié)構(gòu)46if條件表達(dá)式:代碼塊1else:代碼塊2判斷用戶輸入數(shù)字奇偶性為偶數(shù),則打印“偶數(shù)”,為奇數(shù),則打印“奇數(shù)”3.1.2雙分支結(jié)構(gòu)47a=int(input('請(qǐng)輸入一個(gè)整數(shù):'))ifa%2==0:print('偶數(shù)')eles:print('奇數(shù)')示例3-2雙分支條件表達(dá)式3.1.2雙分支結(jié)構(gòu)47a=int(input('請(qǐng)輸入一個(gè)整數(shù):'))result='偶數(shù)'ifa%2==0else'奇數(shù)'print(result)示例3-3表達(dá)式1if條件表達(dá)式else表達(dá)式2條件成立返回表達(dá)式1的值條件不成立返回表達(dá)式2的值兩個(gè)以上互斥條件時(shí)使用-->“多選一”3.1.3多分支結(jié)構(gòu)47if條件表達(dá)式1:代碼塊1elif條件表達(dá)式2:代碼塊2[else:代碼塊3]溫度值-->狀態(tài)3.1.3多分支結(jié)構(gòu)48temperature=25

iftemperature>=30:status='熱'eliftemperature<10:status='冷'else:status='適中'

print('溫度%d對(duì)應(yīng)的狀態(tài)是%s'%(temperature,status))示例3-4可以有多個(gè)elif分支3.1.3多分支結(jié)構(gòu)48ifscore>=90:grade='優(yōu)'elifscore>=80:grade='良'elifscore>=70:grade='中等'elifscore>=60:grade='合格'else:grade='不合格'示例3-5條件互斥能走到“score>=80”說(shuō)明“score>=90”一定滿足多分支結(jié)構(gòu)嵌套分支結(jié)構(gòu)實(shí)戰(zhàn)3-1:折扣計(jì)算49高級(jí)會(huì)員≥10其他

8折9折普通會(huì)員≥10其他85折95折≥5件85折input():增加程序靈活性49實(shí)戰(zhàn)3-1:折扣計(jì)算#初始化變量original_price=float(input('請(qǐng)輸入商品原價(jià):'))quantity=float(input("請(qǐng)輸入購(gòu)買(mǎi)數(shù)量:"))membership_level=input("請(qǐng)輸入會(huì)員等級(jí)(高級(jí)會(huì)員/普通會(huì)員/非會(huì)員):")discount=1#折扣默認(rèn)值為1,表示不打折參考代碼選擇結(jié)構(gòu)的運(yùn)用50實(shí)戰(zhàn)3-1:折扣計(jì)算ifmembership_level=='高級(jí)會(huì)員':ifquantity>=10:discount=0.8#高級(jí)會(huì)員購(gòu)買(mǎi)10件以上8折elifquantity>=5:discount=0.85#高級(jí)會(huì)員購(gòu)買(mǎi)5-9件8.5折else:discount=0.9#高級(jí)會(huì)員購(gòu)買(mǎi)1-4件9折elifmembership_level=='普通會(huì)員':ifquantity>=10:discount=0.85#普通會(huì)員購(gòu)買(mǎi)10件以上8.5折else:discount=0.95#普通會(huì)員購(gòu)買(mǎi)1-9件9.5折參考代碼計(jì)算應(yīng)付金額50實(shí)戰(zhàn)3-1:折扣計(jì)算final_price=original_price*discount*quantityprint('應(yīng)付金額為:%.2f元'%final_price)參考代碼選擇結(jié)構(gòu):if語(yǔ)句01020403循環(huán)結(jié)構(gòu):while/for循環(huán)結(jié)構(gòu):進(jìn)階使用異常與異常處理目

錄循環(huán)結(jié)構(gòu):while/for020403循環(huán)結(jié)構(gòu):進(jìn)階使用異常與異常處理目

錄選擇結(jié)構(gòu):if語(yǔ)句01while循環(huán)break與continuefor...in循環(huán)特定條件下重復(fù)執(zhí)行一段代碼避免代碼冗余關(guān)鍵字whilefor...in3.2循環(huán)結(jié)構(gòu)50循環(huán)結(jié)構(gòu)條件成立NoYes條件表達(dá)式為真時(shí)重復(fù)執(zhí)行一段代碼塊條件表達(dá)式后面的冒號(hào)重復(fù)執(zhí)行的代碼塊(即循環(huán)體)要相對(duì)于所屬的while縮進(jìn)3.2.1while循環(huán)50while條件表達(dá)式:代碼塊重要:循環(huán)變量的使用書(shū)寫(xiě)條件表達(dá)式循環(huán)體中如何改變?yōu)榕紨?shù),則打印“偶數(shù)”,為奇數(shù),則打印“奇數(shù)”3.2.1while循環(huán)51i=2#既是循環(huán)變量,又是求和的參數(shù)result=1#記錄和值whilei<=100:result+=ii+=1

print(result)示例3-6使用不當(dāng)死循環(huán)模擬存錢(qián)罐當(dāng)“罐內(nèi)硬幣數(shù)量與新存入硬幣數(shù)量之和小于或等于存錢(qián)罐容量上限”時(shí)允許存入3.2.1while循環(huán)51limit=500save=0balance=int(input('請(qǐng)輸入新存入硬幣數(shù)量:'))whilesave+balance<=limit:save+=balanceprint('現(xiàn)有硬幣:%d,上限:%d,剩余:%d'%(save,balance,limit-save))balance=int(input('存入硬幣數(shù)量:'))示例3-7作用:提前結(jié)束循環(huán)行為break:退出當(dāng)前循環(huán),繼續(xù)執(zhí)行后面的語(yǔ)句continue:跳至while/for判斷要不要進(jìn)入下一次循環(huán)3.2.2break和continue52i=1whilei<=5:ifi==3:continueprint(i)i+=1示例3-9i=1whilei<=5:ifi==3:breakprint(i)i+=1示例3-8應(yīng)用1:遍歷并處理可迭代對(duì)象的元素3.2.3for循環(huán)52按照某種順序逐個(gè)訪問(wèn)對(duì)象中每一項(xiàng)內(nèi)容的過(guò)程iterable,Python中支持元素遍歷的對(duì)象,包括序列、集合、字典、生成器等f(wàn)or循環(huán)變量in可迭代對(duì)象:代碼塊應(yīng)用1:遍歷并處理可迭代對(duì)象的元素3.2.3for循環(huán)53for循環(huán)變量in可迭代對(duì)象:代碼塊列表元素求和3.2.3for循環(huán)53list1=[3,4,0,-1,7]result=0foreinlist1:result+=eprint(result)示例3-10list1=[3,4,0,-1,7]i,result=0whilei<len(list1):result+=list1[i]i+=1應(yīng)用2:實(shí)現(xiàn)明確次數(shù)的循環(huán)range()3.2.3for循環(huán)54用法說(shuō)明示例range(n)生成[0,n]范圍內(nèi)的n個(gè)整數(shù)range(5)-->序列:0,1,2,3,4range(m,n)生成[m,n-1]范圍內(nèi)的n-m個(gè)整數(shù)range(1,5)-->序列:1,2,3,4range(m,n,step)以step為步長(zhǎng),生成[m,n-1]范圍內(nèi)的整數(shù)序列range(1,10,3)-->序列:1,4,7[1,100]整數(shù)求和3.2.3for循環(huán)54result=0foriinrange(1,101):result+=i示例3-1214天短期投資回報(bào)計(jì)算3.2.3for循環(huán)54result=100000.00#收益,初始值為本金10萬(wàn)rate=0.0385/365#日利率foriinrange(14):result=result+result*rate示例3-13不一定要在循環(huán)體中使用循環(huán)變量應(yīng)用3:同時(shí)遍歷多個(gè)可迭代對(duì)象3.2.3for循環(huán)54list1=[1,2,3]list2=['a','b','c']fornum,charinzip(list1,list2):print(num,char)示例3-14應(yīng)用3:同時(shí)遍歷多個(gè)可迭代對(duì)象3.2.3for循環(huán)55list1=['a','b','c']forindex,valueinenumerate(list1):print(index,value)示例3-15選擇結(jié)構(gòu):if語(yǔ)句01020403循環(huán)結(jié)構(gòu):while/for循環(huán)結(jié)構(gòu):進(jìn)階使用異常與異常處理目

錄循環(huán)結(jié)構(gòu):進(jìn)階使用0304異常與異常處理目

錄選擇結(jié)構(gòu):if語(yǔ)句0102循環(huán)結(jié)構(gòu):while/forelse子句嵌套循環(huán)while/for可以帶一個(gè)else子句,循環(huán)正常結(jié)束時(shí)進(jìn)入while循環(huán):當(dāng)循環(huán)條件不滿足而退出循環(huán)后會(huì)進(jìn)入for循環(huán):當(dāng)可迭代對(duì)象的所有元素遍歷完而退出循環(huán)后進(jìn)入因break退出循環(huán)不會(huì)進(jìn)入else分支主要用途:收尾工作,如打印信息、記錄日志等3.2.4else子句55else子句使用3.2.4else子句55list1=[1,2,3,-1,-2,4]

fornuminlist1:ifnum<=0:print('列表中含有非正數(shù)元素')breakelse:print('列表中所有元素均為正數(shù)')print('測(cè)試結(jié)束')示例3-16嵌套循環(huán):在一個(gè)循環(huán)內(nèi)部放置另一個(gè)循環(huán)九九乘法表3.2.5

嵌套循環(huán)56foriinrange(1,10):forjinrange(1,i+1):

print('%d*%d=%d'%(i,j,i*j),end='\t')print()#換到新的一行示例3-17選擇結(jié)構(gòu):if語(yǔ)句01020403循環(huán)結(jié)構(gòu):while/for循環(huán)結(jié)構(gòu):進(jìn)階使用異常與異常處理目

錄異常與異常處理04目

錄選擇結(jié)構(gòu):if語(yǔ)句0102循環(huán)結(jié)構(gòu):while/for03循環(huán)結(jié)構(gòu):進(jìn)階使用異常的概念和類(lèi)型異常的捕獲異常的處理異常:Python程序執(zhí)行期間發(fā)生的一個(gè)特殊錯(cuò)誤,它會(huì)中斷正常的程序流程,讓程序停止運(yùn)行異常處理:確保程序在出現(xiàn)異常時(shí)能夠得到處理,而不是直接終止運(yùn)行3.3.1

異常的概念與類(lèi)型62異常測(cè)試:除數(shù)為0的異常3.3.1

異常的概念與類(lèi)型63total_cost=float(input('請(qǐng)輸入總價(jià)格:'))total_weight=float(input('請(qǐng)輸入總重量:'))print('單價(jià):%.2f'%(total_cost/total_weight))print('計(jì)算完成')示例3-20異常類(lèi):Python將導(dǎo)致程序終止執(zhí)行的異常情況封裝為不同的類(lèi),通過(guò)命名表明其錯(cuò)誤原因3.3.1

異常的概念與類(lèi)型64異常類(lèi)說(shuō)明異常類(lèi)說(shuō)明BaseException所有異常類(lèi)的基類(lèi)SyntaxError語(yǔ)法錯(cuò)誤除法AttributeError訪問(wèn)對(duì)象沒(méi)有的屬性觸發(fā)TypeError不適當(dāng)?shù)牟僮鲗?duì)象觸發(fā)IndexError訪問(wèn)序列不存在的索引觸發(fā)ValueError函數(shù)參數(shù)無(wú)效觸發(fā)KeyError訪問(wèn)字典不存在的鍵觸發(fā)IOError輸入輸出錯(cuò)誤IndentationError縮進(jìn)錯(cuò)誤NameError訪問(wèn)沒(méi)有定義的變量觸發(fā)try結(jié)構(gòu):先捕獲要處理的異常對(duì)象,再進(jìn)行處理3.3.2

異常的捕獲與處理64try:#嘗試執(zhí)行的代碼塊except[異常類(lèi)型as對(duì)象別名]:#處理異常的語(yǔ)句塊eles:#try塊順利完成后需要執(zhí)行的語(yǔ)句塊finally:#不論是否發(fā)生異常最終都要執(zhí)行的語(yǔ)句塊try...except:Python捕獲處理異常的基本結(jié)構(gòu)3.3.2

異常的捕獲與處理64try:#嘗試執(zhí)行的語(yǔ)句except:#異常處理語(yǔ)句將嘗試執(zhí)行的語(yǔ)句放在try塊中try中沒(méi)有發(fā)生異常,不執(zhí)行任何異常處理程序一旦發(fā)生異常,程序?qū)?chuàng)建相應(yīng)異常類(lèi)型的對(duì)象拋出except分支捕獲其后指定類(lèi)型的異常對(duì)象,如果沒(méi)有指定則捕捉所有類(lèi)型進(jìn)入except分支處理try塊中發(fā)生異常之后的語(yǔ)句不會(huì)再執(zhí)行try...except捕獲處理所有異常3.3.2

異常的捕獲與處理65try:total_cost=float(input('請(qǐng)輸入總價(jià)格:'))total_weight=float(input('請(qǐng)輸入總重量:'))print('單價(jià):%.2f'%(total_cost/total_weight))except:

print('發(fā)生異常!')print('計(jì)算完成')示例3-21try...多個(gè)except處理不同異常3.3.2

異常的捕獲與處理65try:total_cost=float(input('請(qǐng)輸入總價(jià)格:'))total_weight=float(input('請(qǐng)

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論