Python程序設計基礎教程(微課版) 課件 第3章 - Python控制結構_第1頁
Python程序設計基礎教程(微課版) 課件 第3章 - Python控制結構_第2頁
Python程序設計基礎教程(微課版) 課件 第3章 - Python控制結構_第3頁
Python程序設計基礎教程(微課版) 課件 第3章 - Python控制結構_第4頁
Python程序設計基礎教程(微課版) 課件 第3章 - Python控制結構_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

Python程序設計第3章Python控制結構學習目標理解Python選擇結構、循環(huán)結構、異常處理的使用場景掌握選擇結構、循環(huán)結構、異常處理的語法知識目標能夠正確分析控制結構的執(zhí)行結果能夠選擇合適的控制結構處理實際問題能力目標計劃與執(zhí)行力的重要性良好的防御性編碼習慣情感態(tài)度與價值觀選擇結構:if語句01020403循環(huán)結構:while/for循環(huán)結構:進階使用異常與異常處理目

錄選擇結構:if語句01020403循環(huán)結構:while/for循環(huán)結構:進階使用異常與異常處理目

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

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

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

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

錄循環(huán)結構:while/for020403循環(huán)結構:進階使用異常與異常處理目

錄選擇結構:if語句01while循環(huán)break與continuefor...in循環(huán)特定條件下重復執(zhí)行一段代碼避免代碼冗余關鍵字whilefor...in3.2循環(huán)結構50循環(huán)結構條件成立NoYes條件表達式為真時重復執(zhí)行一段代碼塊條件表達式后面的冒號重復執(zhí)行的代碼塊(即循環(huán)體)要相對于所屬的while縮進3.2.1while循環(huán)50while條件表達式:代碼塊重要:循環(huán)變量的使用書寫條件表達式循環(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使用不當死循環(huán)模擬存錢罐當“罐內(nèi)硬幣數(shù)量與新存入硬幣數(shù)量之和小于或等于存錢罐容量上限”時允許存入3.2.1while循環(huán)51limit=500save=0balance=int(input('請輸入新存入硬幣數(shù)量:'))whilesave+balance<=limit:save+=balanceprint('現(xiàn)有硬幣:%d,上限:%d,剩余:%d'%(save,balance,limit-save))balance=int(input('存入硬幣數(shù)量:'))示例3-7作用:提前結束循環(huán)行為break:退出當前循環(huán),繼續(xù)執(zhí)行后面的語句continue:跳至while/for判斷要不要進入下一次循環(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應用1:遍歷并處理可迭代對象的元素3.2.3for循環(huán)52按照某種順序逐個訪問對象中每一項內(nèi)容的過程iterable,Python中支持元素遍歷的對象,包括序列、集合、字典、生成器等for循環(huán)變量in可迭代對象:代碼塊應用1:遍歷并處理可迭代對象的元素3.2.3for循環(huán)53for循環(huán)變量in可迭代對象:代碼塊列表元素求和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應用2:實現(xiàn)明確次數(shù)的循環(huán)range()3.2.3for循環(huán)54用法說明示例range(n)生成[0,n]范圍內(nèi)的n個整數(shù)range(5)-->序列:0,1,2,3,4range(m,n)生成[m,n-1]范圍內(nèi)的n-m個整數(shù)range(1,5)-->序列:1,2,3,4range(m,n,step)以step為步長,生成[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天短期投資回報計算3.2.3for循環(huán)54result=100000.00#收益,初始值為本金10萬rate=0.0385/365#日利率foriinrange(14):result=result+result*rate示例3-13不一定要在循環(huán)體中使用循環(huán)變量應用3:同時遍歷多個可迭代對象3.2.3for循環(huán)54list1=[1,2,3]list2=['a','b','c']fornum,charinzip(list1,list2):print(num,char)示例3-14應用3:同時遍歷多個可迭代對象3.2.3for循環(huán)55list1=['a','b','c']forindex,valueinenumerate(list1):print(index,value)示例3-15選擇結構:if語句01020403循環(huán)結構:while/for循環(huán)結構:進階使用異常與異常處理目

錄循環(huán)結構:進階使用0304異常與異常處理目

錄選擇結構:if語句0102循環(huán)結構:while/forelse子句嵌套循環(huán)while/for可以帶一個else子句,循環(huán)正常結束時進入while循環(huán):當循環(huán)條件不滿足而退出循環(huán)后會進入for循環(huán):當可迭代對象的所有元素遍歷完而退出循環(huán)后進入因break退出循環(huá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('測試結束')示例3-16嵌套循環(huán):在一個循環(huán)內(nèi)部放置另一個循環(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選擇結構:if語句01020403循環(huán)結構:while/for循環(huán)結構:進階使用異常與異常處理目

錄異常與異常處理04目

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

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

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

異常的概念與類型64異常類說明異常類說明BaseException所有異常類的基類SyntaxError語法錯誤除法AttributeError訪問對象沒有的屬性觸發(fā)TypeError不適當?shù)牟僮鲗ο笥|發(fā)IndexError訪問序列不存在的索引觸發(fā)ValueError函數(shù)參數(shù)無效觸發(fā)KeyError訪問字典不存在的鍵觸發(fā)IOError輸入輸出錯誤IndentationError縮進錯誤NameError訪問沒有定義的變量觸發(fā)try結構:先捕獲要處理的異常對象,再進行處理3.3.2

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

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

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

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

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

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論