Python程序設(shè)計(jì)基礎(chǔ)案例教程 課件 第3章 程序控制結(jié)構(gòu)_第1頁
Python程序設(shè)計(jì)基礎(chǔ)案例教程 課件 第3章 程序控制結(jié)構(gòu)_第2頁
Python程序設(shè)計(jì)基礎(chǔ)案例教程 課件 第3章 程序控制結(jié)構(gòu)_第3頁
Python程序設(shè)計(jì)基礎(chǔ)案例教程 課件 第3章 程序控制結(jié)構(gòu)_第4頁
Python程序設(shè)計(jì)基礎(chǔ)案例教程 課件 第3章 程序控制結(jié)構(gòu)_第5頁
已閱讀5頁,還剩68頁未讀 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡介

程序控制結(jié)構(gòu)學(xué)習(xí)目標(biāo)/Target熟練掌握if語句單分支、雙分支及多分支結(jié)構(gòu),能根據(jù)不同條件邏輯編寫程序掌握分支語句與循環(huán)語句的嵌套使用方法,合理組織多層邏輯結(jié)構(gòu)解決復(fù)雜問題準(zhǔn)確使用continue和break語句,實(shí)現(xiàn)循環(huán)流程的靈活跳轉(zhuǎn)與終止靈活運(yùn)用for循環(huán)與while循環(huán),結(jié)合條件判斷實(shí)現(xiàn)數(shù)據(jù)遍歷與動(dòng)態(tài)控制章節(jié)概述/Summary程序控制結(jié)構(gòu)是Python邏輯的“骨架”。本章圍繞順序、條件、循環(huán)三大結(jié)構(gòu)展開,解析語句執(zhí)行流程的底層邏輯:通過條件判斷實(shí)現(xiàn)分支選擇,利用循環(huán)語句完成重復(fù)任務(wù),結(jié)合break/continue等控制語句優(yōu)化執(zhí)行邏輯。以簡明案例演示結(jié)構(gòu)嵌套與實(shí)戰(zhàn)應(yīng)用,幫助構(gòu)建清晰的程序邏輯思維,為解決復(fù)雜業(yè)務(wù)場(chǎng)景奠定流程控制基礎(chǔ)。目錄/Contents010203【案例3-1】碳排放計(jì)算器【案例3-2】智能家居控制程序【案例3-3】農(nóng)產(chǎn)品智能分級(jí)程序【案例3-1】碳排放計(jì)算器01案例分析低碳出行碳排放計(jì)算器旨在為踐行環(huán)保理念、助力“雙碳”目標(biāo)達(dá)成提供有力的數(shù)據(jù)支撐。本案例以簡潔的命令行交互形式呈現(xiàn),通過輸入出行方式編號(hào)和距離,程序通過if多分支語句,依據(jù)預(yù)設(shè)的碳排放系數(shù),快速計(jì)算出相應(yīng)的碳排放量;根據(jù)碳排放量劃分出行環(huán)保等級(jí),最后給出“短距離選步行、長距離選公交”的實(shí)用建議。知識(shí)儲(chǔ)備程序的組織結(jié)構(gòu)if語句if-else語句if-elif-else語句知識(shí)儲(chǔ)備知識(shí)儲(chǔ)備—程序的組織結(jié)構(gòu)1.順序結(jié)構(gòu)順序結(jié)構(gòu)是程序中最基本的結(jié)構(gòu)。在順序結(jié)構(gòu)中,代碼會(huì)從上到下順序執(zhí)行,每個(gè)語句都會(huì)按照編寫順序被執(zhí)行一遍。示例如下:x=5y=10z=x+yprint(z)2.選擇(分支)結(jié)構(gòu)選擇結(jié)構(gòu)根據(jù)給定的條件選擇要執(zhí)行的代碼塊。如果條件滿足,將執(zhí)行一個(gè)代碼塊;如果不滿足,將執(zhí)行另一個(gè)代碼塊或跳過執(zhí)行。Python中的選擇結(jié)構(gòu)有if語句、if-else語句和if-elif-else語句,以下是一個(gè)使用if語句的示例代碼:x=5ifx>0:print("x是正數(shù)")知識(shí)儲(chǔ)備—程序的組織結(jié)構(gòu)3.循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)允許程序多次執(zhí)行同一段代碼,直到滿足一些條件才停止。循環(huán)結(jié)構(gòu)可分為for循環(huán)和while循環(huán)兩種常見的類型。以下是一個(gè)使用for循環(huán)的示例代碼:foriinrange(5):print(i)知識(shí)儲(chǔ)備—程序的組織結(jié)構(gòu)知識(shí)儲(chǔ)備—if語句無縫銜接單元測(cè)試單分支if語句只包含一個(gè)條件判斷,如果條件為真(True),則執(zhí)行相應(yīng)的代碼塊。其語法格式如下:if條件表達(dá)式:

條件為真時(shí)執(zhí)行的代碼塊語法格式知識(shí)儲(chǔ)備—if語句無縫銜接單元測(cè)試score=eval(input("請(qǐng)輸入考試成績:"))ifscore<60:print('{}分,不及格!'.format(score))示例1輸入一個(gè)成績,如果小于60,則輸出“xx分,不及格!”。知識(shí)儲(chǔ)備—if-esle語句無縫銜接單元測(cè)試if語句只能處理滿足條件的情況,但一些場(chǎng)景不僅需要處理滿足條件的情況,也需要對(duì)不滿足條件的情況做特殊處理。因此,Python提供了可以同時(shí)處理滿足和不滿足條件的if-else語句。if條件表達(dá)式:

條件為真時(shí)執(zhí)行的代碼塊1else:

條件為假時(shí)執(zhí)行的代碼塊2語法格式知識(shí)儲(chǔ)備—if-esle語句無縫銜接單元測(cè)試score=eval(input("請(qǐng)輸入考試成績:"))ifscore<60:print(f'{score}分,不及格!')else:print(f'{score}分,及格!')示例2輸入一個(gè)成績判斷是否及格,如果小于60,則輸出“xx分,不及格!”,否則,輸出“xx分,及格!”。知識(shí)儲(chǔ)備—if-elif-else語句無縫銜接單元測(cè)試if-elif-else(多分支)語句允許根據(jù)多個(gè)條件來執(zhí)行不同的代碼塊,在程序執(zhí)行過程中,會(huì)按照從上到下的順序依次對(duì)各個(gè)條件進(jìn)行判斷。if-elif-else語句的語法格式如下所示:if條件表達(dá)式1:

條件1為真時(shí)執(zhí)行的代碼塊1elif條件表達(dá)式2:

條件2為真時(shí)執(zhí)行的代碼塊2elif條件表達(dá)式3:

條件3為真時(shí)執(zhí)行的代碼塊3...else:

所有條件都不為真時(shí)執(zhí)行的代碼語法格式知識(shí)儲(chǔ)備—if-esle語句無縫銜接單元測(cè)試score=eval(input("請(qǐng)輸入考試成績:"))ifscore<0:print('輸入錯(cuò)誤,成績不能為負(fù)數(shù)!')elifscore<60:print(f'{score}分,不及格!')elifscore<90: #此處條件為60-90分print(f'{score}分,良好!')elifscore<=100: #此處條件為90-100分print(f'{score}分,優(yōu)秀!')else: #否則(以上都不成立)print('輸入錯(cuò)誤,成績不能超過100!')示例3承前例,把“及格”以上成績繼續(xù)細(xì)分為良好(60-90)和優(yōu)秀(90-100),同時(shí)兼顧一些輸入異常情況,比如負(fù)數(shù)或者大于100的情況。案例實(shí)現(xiàn)創(chuàng)建名稱為“碳排放計(jì)算器”的項(xiàng)目,在項(xiàng)目下創(chuàng)建名稱為low_carbon_travel的Python文件。準(zhǔn)備工作案例實(shí)現(xiàn)STEP01顯示歡迎信息和出行方式選項(xiàng)打印程序標(biāo)題和支持的出行方式列表,使用分隔線增強(qiáng)界面可讀性。print("=====低碳出行碳排放計(jì)算器=====")print("支持的出行方式:")print("1.步行或自行車")print("2.公交車")print("3.地鐵")print("4.私家車")print("5.出租車")print("="*30)案例實(shí)現(xiàn)STEP02獲取用戶輸入的出行方式和距離通過input()函數(shù)獲取用戶選擇的出行方式和距離,使用float()函數(shù)將距離轉(zhuǎn)換為數(shù)值類型。原有代碼...transport=input("請(qǐng)輸入出行方式編號(hào)(1-5):")distance=float(input("請(qǐng)輸入出行距離(公里):"))案例實(shí)現(xiàn)STEP03計(jì)算碳排放使用多分支if-elif-else語句判斷出行方式,根據(jù)不同出行方式的碳排放系數(shù)計(jì)算排放量,處理無效輸入,確保程序健壯性。原有代碼...iftransport=="1": #步行或自行車emission=0eliftransport=="2": #公交車emission=distance*0.085eliftransport=="3": #地鐵emission=distance*0.05eliftransport=="4": #私家車emission=distance*0.18 #假設(shè)平均油耗eliftransport=="5": #出租車emission=distance*0.22 #假設(shè)更高的空駛率else:print("錯(cuò)誤:無效的出行方式編號(hào)")exit()案例實(shí)現(xiàn)STEP04確定碳排放等級(jí)再次使用多分支結(jié)構(gòu)評(píng)估排放等級(jí),根據(jù)排放量將出行劃分為四個(gè)環(huán)保等級(jí),為每個(gè)等級(jí)添加直觀的圖標(biāo)和描述。原有代碼...ifemission==0:level="零碳出行[最環(huán)保]"elifemission<1:level="低碳出行[推薦]"elifemission<5:level="中碳排放[需注意]"else:level="高碳排放[不推薦]"案例實(shí)現(xiàn)STEP05輸出結(jié)果及出行建議打印結(jié)果及出行建議。原有代碼...print(f"\n你的{distance}公里{transport}出行,碳排放量為{emission:.2f}kg")print(f"碳排放等級(jí):{level}")print("\n??

小貼士:短距離優(yōu)先選擇步行或自行車,長距離多使用公共交通!")【案例3-2】智能家居控制程序02案例分析本案例通過設(shè)計(jì)一個(gè)簡易的智能家居設(shè)備控制模擬程序,模擬用戶控制家中的各類智能設(shè)備,如開關(guān)燈(當(dāng)用戶選擇控制燈時(shí),根據(jù)當(dāng)前燈的狀態(tài)“開/關(guān)”進(jìn)行反轉(zhuǎn))、調(diào)節(jié)空調(diào)溫度(更新溫度變量并反饋結(jié)果)、控制掃地機(jī)器人(根據(jù)當(dāng)前機(jī)器人狀態(tài)“工作/靜止”進(jìn)行切換)、查看所有設(shè)備狀態(tài)(一次性輸出所有設(shè)備的當(dāng)前狀態(tài)),直觀展現(xiàn)分支和循環(huán)在實(shí)際場(chǎng)景中的應(yīng)用。開關(guān)燈功能運(yùn)行結(jié)果調(diào)節(jié)空調(diào)溫度功能運(yùn)行結(jié)果控制掃地機(jī)器人功能運(yùn)行結(jié)果控制掃地機(jī)器人功能運(yùn)行結(jié)果知識(shí)儲(chǔ)備for循環(huán)while循環(huán)無限循環(huán)條件判斷語句在循環(huán)中的運(yùn)用知識(shí)儲(chǔ)備知識(shí)儲(chǔ)備—for循環(huán)for循環(huán)一般用于實(shí)現(xiàn)遍歷循環(huán)。遍歷指逐一訪問目標(biāo)對(duì)象中的數(shù)據(jù),例如逐個(gè)訪問字符串中的字符;遍歷循環(huán)指在循環(huán)中完成對(duì)目標(biāo)對(duì)象的遍歷。for變量in可迭代對(duì)象:

代碼塊1[else:

代碼塊2]語法格式上述格式中,“變量”是一個(gè)臨時(shí)變量,又稱“循環(huán)變量”,用于臨時(shí)存儲(chǔ)從可迭代對(duì)象中讀取出來的元素;“代碼塊1”是要重復(fù)執(zhí)行的代碼段,代碼塊指的是具有相同縮進(jìn)格式的多行代碼,由于和循環(huán)結(jié)構(gòu)聯(lián)用,因此“代碼塊1”又稱為循環(huán)體。知識(shí)儲(chǔ)備—for循環(huán)無縫銜接單元測(cè)試forsin'鄉(xiāng)村振興':print(s,end='*')else:print('for循環(huán)正常結(jié)束了')示例4使用for循環(huán)遍歷字符串“鄉(xiāng)村振興”,并在控制臺(tái)輸出。知識(shí)儲(chǔ)備—for循環(huán)無縫銜接單元測(cè)試在for循環(huán)中,range()函數(shù)是一個(gè)非常實(shí)用的工具,它可以方便地生成整數(shù)序列,語法格式如下:range(start,end,step)語法格式參數(shù)說明:

start:范圍開始的整數(shù)(包括該整數(shù))。如果省略該參數(shù),則默認(rèn)從0開始。

end:范圍結(jié)束的整數(shù)(不包括該整數(shù)),必須參數(shù)。

step:步長,即數(shù)字之間的間隔,默認(rèn)為1。如果為正數(shù),則序列中的數(shù)字會(huì)遞增;如果為負(fù)數(shù),則序列中的數(shù)字會(huì)遞減。知識(shí)儲(chǔ)備—for循環(huán)無縫銜接單元測(cè)試start=1n=int(input('輸入正整數(shù):'))ls=range(1,n+1)foriinls:print(i)示例5生成1到n的整數(shù)序列。知識(shí)儲(chǔ)備—while循環(huán)while循環(huán)是一種控制流語句,用于重復(fù)執(zhí)行一段代碼塊,直到給定的條件不再滿足為止。常用于循環(huán)次數(shù)不確定,僅依據(jù)某個(gè)條件來決定是否繼續(xù)循環(huán)的場(chǎng)景。語法格式如下:while條件表達(dá)式:

代碼塊1[else:

代碼塊2]語法格式知識(shí)儲(chǔ)備—while循環(huán)無縫銜接單元測(cè)試s=0n=1whilen<=100:s=s+nn=n+1print('計(jì)算的累加和為:',s)示例6使用while循環(huán)計(jì)算1+2+3+…+100的累加和。知識(shí)儲(chǔ)備—無限循環(huán)無縫銜接單元測(cè)試無限循環(huán)又叫死循環(huán),是指循環(huán)條件一直成立、會(huì)持續(xù)不斷執(zhí)行的循環(huán),直到顯式地中斷它(例如,使用break語句或關(guān)閉程序)。在Python中,可以使用“whileTrue:”來創(chuàng)建一個(gè)無限循環(huán)。whileTrue:

條件為真時(shí)執(zhí)行的代碼塊語法格式知識(shí)儲(chǔ)備—無限循環(huán)無縫銜接單元測(cè)試i=1whileTrue:print(i)ifi==5:breaki+=1示例7定義一個(gè)無限循環(huán),并使用break語句終止。知識(shí)儲(chǔ)備—條件判斷語句在循環(huán)中的運(yùn)用無縫銜接單元測(cè)試在循環(huán)中,常常需要結(jié)合條件判斷語句(如if語句)對(duì)循環(huán)變量或其他相關(guān)數(shù)據(jù)進(jìn)行條件判斷,并根據(jù)判斷結(jié)果決定后續(xù)的操作。無縫銜接單元測(cè)試count=0foriinrange(20):print(f"正在打印第{i+1}份筆記")count+=1ifcount==10:print("已打印10份,休息一下")示例8使用for循環(huán)模擬打印20份筆記,打印第10份時(shí)提示“已打印10份,休息一下”。案例實(shí)現(xiàn)創(chuàng)建名稱為“智能家居控制程序”的項(xiàng)目,在項(xiàng)目下創(chuàng)建名稱為smart_home_system的Python文件。準(zhǔn)備工作案例實(shí)現(xiàn)STEP01初始化設(shè)備狀態(tài)定義并設(shè)置三個(gè)智能家居設(shè)備(燈、空調(diào)、掃地機(jī)器人)的初始狀態(tài),為后續(xù)操作提供基準(zhǔn)值。通過變量存儲(chǔ)狀態(tài),便于動(dòng)態(tài)更新和查詢。light_status="關(guān)閉"air_conditioner_temperature=26robot_status="靜止"案例實(shí)現(xiàn)STEP02創(chuàng)建主菜單循環(huán)使用無限循環(huán)持續(xù)展示功能菜單(控制燈、調(diào)節(jié)溫度等),獲取用戶輸入選項(xiàng)。確保程序在用戶主動(dòng)退出前保持運(yùn)行,形成交互閉環(huán)。原有代碼....whileTrue:print("\n=====智能家居設(shè)備控制菜單=====")print("1.控制燈")print("2.調(diào)節(jié)空調(diào)溫度")print("3.控制掃地機(jī)器人")print("4.查看所有設(shè)備狀態(tài)")print("5.退出")user_choice=input("請(qǐng)輸入操作選項(xiàng)(1-5):")案例實(shí)現(xiàn)STEP03控制燈當(dāng)用戶選擇控制燈時(shí),根據(jù)當(dāng)前燈的狀態(tài)(開/關(guān))進(jìn)行反轉(zhuǎn),并更新狀態(tài)變量,同時(shí)輸出操作結(jié)果。whileTrue:原有代碼...ifuser_choice=="1":iflight_status=="關(guān)閉":light_status="打開"print("燈已打開")else:light_status="關(guān)閉"print("燈已關(guān)閉")案例實(shí)現(xiàn)STEP04調(diào)節(jié)空調(diào)溫度當(dāng)用戶選擇控制燈時(shí),根據(jù)當(dāng)前燈的狀態(tài)(開/關(guān))進(jìn)行反轉(zhuǎn),并更新狀態(tài)變量,同時(shí)輸出操作結(jié)果。whileTrue:原有代碼...elifuser_choice=="2":print(f"當(dāng)前空調(diào)溫度為{air_conditioner_temperature}℃")new_temp=input("請(qǐng)輸入新的溫度值(16-30):")ifnew_temp.isdigit():new_temp=int(new_temp)if16<=new_temp<=30:air_conditioner_temperature=new_tempprint(f"空調(diào)溫度已調(diào)節(jié)至{air_conditioner_temperature}℃")else:print("溫度值超出范圍,請(qǐng)輸入16-30之間的數(shù)字")else:print("輸入無效,請(qǐng)輸入數(shù)字")案例實(shí)現(xiàn)STEP05控制掃地機(jī)器人根據(jù)當(dāng)前機(jī)器人狀態(tài)(工作/靜止)進(jìn)行切換,更新狀態(tài)變量并輸出相應(yīng)提示,模擬設(shè)備啟停操作。whileTrue:原有代碼...elifuser_choice=="3":ifrobot_status=="靜止":robot_status="工作"print("掃地機(jī)器人已開始工作")else:robot_status="靜止"print("掃地機(jī)器人已停止工作")案例實(shí)現(xiàn)STEP06查看設(shè)備狀態(tài)一次性輸出所有設(shè)備的當(dāng)前狀態(tài)(燈的開關(guān)、空調(diào)溫度、機(jī)器人工作狀態(tài)),幫助用戶確認(rèn)系統(tǒng)當(dāng)前配置。whileTrue:原有代碼...elifuser_choice=="4":print(f"燈的狀態(tài):{light_status}")print(f"空調(diào)溫度:{air_conditioner_temperature}℃")print(f"掃地機(jī)器人狀態(tài):{robot_status}")案例實(shí)現(xiàn)STEP07退出系統(tǒng)當(dāng)用戶選擇退出時(shí),輸出感謝信息并終止循環(huán),結(jié)束程序運(yùn)行。whileTrue:原有代碼...elifuser_choice=="5":print("感謝使用智能家居設(shè)備控制模擬系統(tǒng)!")break案例實(shí)現(xiàn)STEP08處理無效輸入若用戶輸入的選項(xiàng)不在預(yù)設(shè)范圍內(nèi)(1-5),提示輸入無效,引導(dǎo)用戶重新選擇,增強(qiáng)程序容錯(cuò)性。whileTrue:原有代碼...else:print("無效的選擇,請(qǐng)重新輸入。")【案例3-3】農(nóng)產(chǎn)品智能程序03案例分析在鄉(xiāng)村振興戰(zhàn)略和農(nóng)業(yè)現(xiàn)代化發(fā)展的背景下,農(nóng)產(chǎn)品標(biāo)準(zhǔn)化分級(jí)是提升農(nóng)產(chǎn)品附加值、實(shí)現(xiàn)優(yōu)質(zhì)優(yōu)價(jià)的關(guān)鍵環(huán)節(jié)。傳統(tǒng)人工分級(jí)方式存在效率低、標(biāo)準(zhǔn)不統(tǒng)一等問題,難以滿足規(guī)?;a(chǎn)和市場(chǎng)需求。本案例通過設(shè)計(jì)一個(gè)簡易的農(nóng)產(chǎn)品智能分級(jí)程序,針對(duì)蘋果和草莓兩種水果,根據(jù)重量或品相自動(dòng)劃分等級(jí),模擬農(nóng)業(yè)生產(chǎn)中的智能化分揀場(chǎng)景,旨在為中小型農(nóng)產(chǎn)品加工企業(yè)和農(nóng)戶提供便捷、標(biāo)準(zhǔn)化的分級(jí)解決方案。知識(shí)儲(chǔ)備if語句嵌套循環(huán)嵌套continue和break語句異常處理語句知識(shí)儲(chǔ)備知識(shí)儲(chǔ)備—if語句嵌套檢票符合條件后方可進(jìn)入安檢程序,安檢符合條件后方可進(jìn)站乘坐列車。這個(gè)場(chǎng)景中雖然涉及兩個(gè)判斷條件,但這兩個(gè)條件并非選擇關(guān)系,而是嵌套關(guān)系:先判斷外層條件,條件滿足后才去判斷內(nèi)層條件;兩層條件都滿足時(shí)才執(zhí)行內(nèi)層的操作。Python中通過if嵌套可以實(shí)現(xiàn)程序中條件語句的嵌套邏輯。if嵌套的語法格式如下所示:if條件表達(dá)式1:

代碼段1if條件表達(dá)式2:

代碼段2else:

代碼段3else:

代碼段4語法格式知識(shí)儲(chǔ)備—if語句嵌套無縫銜接單元測(cè)試age=22is_student=Trueifage>=18:ifis_student:print("成年學(xué)生")else:print("成年非學(xué)生")else:print("未成年")示例9判斷是否為成年學(xué)生。知識(shí)儲(chǔ)備—if語句嵌套無縫銜接單元測(cè)試age=18is_student=Falseifage>=18:ifis_student:print("成年學(xué)生")else:print("成年非學(xué)生")else:print("未成年")示例9將上一個(gè)示例中is_student變量的值修改為False。知識(shí)儲(chǔ)備—循環(huán)嵌套循環(huán)之間可以互相嵌套,進(jìn)而實(shí)現(xiàn)更為復(fù)雜的邏輯。循環(huán)嵌套按不同的循環(huán)語句可以劃分為while循環(huán)嵌套和for循環(huán)嵌套。知識(shí)儲(chǔ)備—循環(huán)嵌套1.for循環(huán)嵌套for循環(huán)嵌套是指for語句中嵌套了while或for語句。以for語句中嵌套for語句為例,for循環(huán)嵌套的語法格式如下:for臨時(shí)變量in可迭代對(duì)象:#外層循環(huán)

代碼塊1for臨時(shí)變量in可迭代對(duì)象#內(nèi)層循環(huán)

代碼塊2語法格式知識(shí)儲(chǔ)備—循環(huán)嵌套無縫銜接單元測(cè)試foriinrange(5):forjinrange(5):print('*',end='')print() #每打完一行5個(gè)*就換行示例10打印一個(gè)5行5列的星號(hào)矩形。知識(shí)儲(chǔ)備—循環(huán)嵌套2.while循環(huán)嵌套while循環(huán)嵌套是指while語句中嵌套while或for語句。以while語句中嵌套while語句為例,while循環(huán)嵌套的語法格式如下:while條件表達(dá)式1:#外層循環(huán)

代碼塊1while條件表達(dá)式2:#內(nèi)層循環(huán)

代碼塊2語法格式知識(shí)儲(chǔ)備—循環(huán)嵌套無縫銜接單元測(cè)試j=0whilej<=4:i=0whilei<=4:print('*',end='')i+=1print()j+=1示例11使用while循環(huán)打印一個(gè)5行5列的星號(hào)矩形。知識(shí)儲(chǔ)備—continue和break語句無縫銜接單元測(cè)試break語句用于結(jié)束循環(huán),若循環(huán)中使用了break語句,程序執(zhí)行到break語句時(shí)會(huì)結(jié)束循環(huán);若循環(huán)嵌套使用了break語句,程序執(zhí)行到break語句時(shí)會(huì)結(jié)束本層循環(huán)。break語句通常與if語句配合使用,以便在條件滿足時(shí)結(jié)束循環(huán)。知識(shí)儲(chǔ)備—continue和break語句無縫銜接單元測(cè)試i=1whilei<11:ifi>5:breakprint(i)i+=1示例12打印1-10的數(shù),當(dāng)?shù)谖鍌€(gè)數(shù)的時(shí)停止輸出。知識(shí)儲(chǔ)備—continue和break語句無縫銜接單元測(cè)試continue語句用于循環(huán)語句(while、for語句)中,不再執(zhí)行本次循環(huán)內(nèi)continue之后的代碼,重新開始一次新的循環(huán)。知識(shí)儲(chǔ)備—continue和break語句無縫銜接單元測(cè)試i=0whilei<11:i+=1ifi%2==1:continueprint(i)示例13輸出0到10的偶數(shù)。知識(shí)儲(chǔ)備—異常處理語句異常是在程序運(yùn)行期間發(fā)生的錯(cuò)誤,意外或不正常情況,可能是由于外部環(huán)境、不正確的輸入、無效的操作或其他因素引起的。如果一個(gè)程序在運(yùn)行的過程中出現(xiàn)異常,并且沒有對(duì)異常進(jìn)行處理,那么此時(shí)解釋器會(huì)采用默認(rèn)方式處理異常,即終止程序并給出相應(yīng)的異常信息。知識(shí)儲(chǔ)備—異常處理語句在Python程序運(yùn)行過程中,當(dāng)檢測(cè)到一個(gè)錯(cuò)誤時(shí),解釋器通常無法繼續(xù)正常執(zhí)行后續(xù)代碼,而是會(huì)拋出一些錯(cuò)誤提示信息,這些情況被稱為“異?!薄@?,在進(jìn)行除法運(yùn)算時(shí),如果除數(shù)為0,就會(huì)引發(fā)ZeroDivisionError異常,具體代碼如下:try:print(1/0)exceptZeroDivisionError:print('有錯(cuò)誤')知識(shí)儲(chǔ)備—異常處理語句為了避免異常導(dǎo)致程序終止運(yùn)行,Python提供了異常處理語句,語法格式如下:try:

可能發(fā)生異常的代碼except錯(cuò)誤類型:

如果出現(xiàn)異常執(zhí)行的代碼else:

沒有異常執(zhí)行的代碼finally:

論是否異常都要執(zhí)行的代碼語法格式知識(shí)儲(chǔ)備—異常處理語句使用異常處理語句時(shí),有幾點(diǎn)需要注意。首先,如果嘗試執(zhí)行的代碼的異常類型和要捕獲的異常類型不一致,則無法捕獲異常。例如,如果try塊中實(shí)際引發(fā)的是NameError,而except塊捕獲的是ZeroDivisionError,那么這個(gè)異常將不會(huì)被捕獲,程序會(huì)繼續(xù)報(bào)錯(cuò)。其次,當(dāng)需要捕獲多個(gè)異常時(shí),可以把要捕獲的異常類型的名字放在except后,并使用元組的方式書寫。例如:try:print(num)except(NameError,ZeroDivisionError)asresult:print(result)注意事項(xiàng)知識(shí)儲(chǔ)備—異常處理語句Python程序中常見的異常如表所示。異常名稱描述TypeError操作或函數(shù)應(yīng)用于不適當(dāng)類型的對(duì)象時(shí)引發(fā)ValueError函數(shù)或操作的參數(shù)具有正確的類型但不合法時(shí)引發(fā)NameError嘗試訪問一個(gè)未定義的變量時(shí)引發(fā)IndexError嘗試訪問列表、元組或字符串中不存在的索引時(shí)引發(fā)KeyError嘗試訪問字典中不存在的鍵時(shí)引發(fā)ZeroDivisionError嘗試除以零時(shí)引發(fā)IOError嘗試讀取不存在的文件或無法訪問文件時(shí)引發(fā)ImportError嘗試導(dǎo)入不存在的模塊或包時(shí)引發(fā)知識(shí)儲(chǔ)備—while循環(huán)無縫銜接單元測(cè)試try:print(a)exceptExceptionasresult:print(result,'a沒有被定義')else:print('太好了沒有異常')finally:print('程序結(jié)束')示例14使用tryexcept語句捕捉異常。案例實(shí)現(xiàn)創(chuàng)建名稱為“農(nóng)產(chǎn)品智能分級(jí)程序”的項(xiàng)目,在項(xiàng)目下創(chuàng)建名稱為rating_system的Python文件。準(zhǔn)備工作案例實(shí)現(xiàn)STEP01初始化設(shè)備狀態(tài)輸出分級(jí)系統(tǒng)的名稱、支持的農(nóng)產(chǎn)品種類、分級(jí)標(biāo)準(zhǔn)等信息。print("====農(nóng)產(chǎn)品智能分級(jí)系統(tǒng)====")print("支持的水果類型:蘋果、草莓")print("分級(jí)標(biāo)準(zhǔn):")print("-蘋果:重量>300g→特級(jí),200-300g→一級(jí),<200g→二級(jí)")print("-草莓:品相>95分→特級(jí),85-95分→一級(jí),<85分→二級(jí)")print("-"*40)案例實(shí)現(xiàn)STEP02初始化交互界面使用“whileTrue”創(chuàng)建無限循環(huán),確保用戶可多次輸入分級(jí)數(shù)據(jù),直至輸入q(不區(qū)分大小寫)退出系統(tǒng);break語句用于終止循環(huán),lower()方法將輸入統(tǒng)一轉(zhuǎn)為小寫,避免因大小寫誤判導(dǎo)致的邏輯錯(cuò)誤。原有代碼....print("\n===手動(dòng)輸入農(nóng)產(chǎn)品分級(jí)===")whileTrue:fruit_type=input("請(qǐng)輸入水果類型(蘋果/草莓,輸入q退出):")iffruit_type.lower()=="q":break #退出循環(huán)案例實(shí)現(xiàn)STEP03獲取并驗(yàn)證水果類型使用in關(guān)鍵字判斷用戶輸入的水果類型是否在支持列表內(nèi),若輸入不合法(如“香蕉”),打印提示信息并通過continue跳過本次循環(huán)的剩余邏輯,直接進(jìn)入下一輪輸入。whileTrue:原有代碼...iffruit_typenotin["蘋果","草莓"]:print("暫不支持該水果類型,請(qǐng)重新輸入。")continue #跳過后續(xù)代碼,直接進(jìn)入下一輪循環(huán)案例實(shí)現(xiàn)STEP04獲取并驗(yàn)證分級(jí)依據(jù)用戶輸入w(重量)或a(品相)選擇分級(jí)標(biāo)準(zhǔn),通過lower()方法統(tǒng)一轉(zhuǎn)為小寫,避免輸入誤差;使用多分支語句(if-elif-else)分別處理兩種分級(jí)標(biāo)準(zhǔn):若選擇重量(w),校驗(yàn)水果類型是否為蘋果(草莓不支持重量分級(jí));若選擇品相(a),校驗(yàn)水果類型是否為草莓(蘋果不支持品相分級(jí))。whileTrue:原有代碼...criteria=input("按重量分級(jí)輸入w,按品相分級(jí)輸入a:").lower()ifcriteria=="w":…elifcriteria=="a":…else:print("輸入無效,請(qǐng)輸入w或a。")案例實(shí)現(xiàn)STEP05處理重量分級(jí)(蘋果)使用分支語句(if-elif-else)確定等

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論