版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
模塊5
流程控制學(xué)習(xí)目標(biāo)掌握序列類型的特點熟練使用字符串、列表和元組會創(chuàng)建列表、嵌套列表和元組會添加、刪除、插入列表元素會排序列表任務(wù)5-1判定空氣質(zhì)量指數(shù)程序的基本結(jié)構(gòu)21流程圖34目錄判斷條件If語句通知格式雙分支if語句65單分支if語句78目錄多分支if語句If語句的嵌套任務(wù)5-1判定空氣質(zhì)量指數(shù)一、請繪制程序的流程圖并寫出相應(yīng)程序代碼。程序功能:接收用戶輸入的用戶名及密碼,如果用戶名為admin、密碼為rz2088$RZ,則提示“登錄成功!歡迎您!”,否則顯示“用戶名或密碼錯誤,請再想想!”。二、編程實現(xiàn):請根據(jù)用戶輸入的空氣質(zhì)量指數(shù),顯示空氣質(zhì)量指數(shù)類型級別及相應(yīng)建議,空氣質(zhì)量指數(shù)級別表請見表5-1,程序名AirQuality.py。AQI(AirQualityIndex)是按照《環(huán)境空氣質(zhì)量標(biāo)準(zhǔn)》(GB3095—2012)定量描述空氣質(zhì)量狀況的無量綱指數(shù)。表5-1空氣質(zhì)量系數(shù)級別
表5-1空氣質(zhì)量系數(shù)級別
空氣質(zhì)量指數(shù)AQI空氣質(zhì)量
指數(shù)級別空氣質(zhì)
量表示表示
顏色建議101≤AQI<151三級輕度污染橙色兒童、老年人及心臟病、呼吸系統(tǒng)疾病患者應(yīng)減少長時間、高強度的戶外鍛煉151≤AQI<201四級中度污染紅色兒童、老年人及心臟病、呼吸系統(tǒng)疾病患者避免長時間、高強度的戶外鍛煉,一般人群適量減少戶外運動201≤AQI≤300五級重度污染紫色兒童、老年人和心臟病、肺病患者應(yīng)停留在室內(nèi),停止戶外運動,一般人群減少戶外運動>300六級嚴重污染褐紅色兒童、老年人和病人應(yīng)當(dāng)留在室內(nèi),避免體力消耗,一般人群應(yīng)避免戶外活動相關(guān)知識1.流程圖程序流程圖是使用流程圖符號、文本、流程線來描述程序算法的工具。2.程序的基本結(jié)構(gòu)順序結(jié)構(gòu):從上向下按順序執(zhí)行分支結(jié)構(gòu):根據(jù)判斷條件(也稱為條件表達式)的值為True還是False執(zhí)行不同分支的結(jié)構(gòu)循環(huán)結(jié)構(gòu):循環(huán)結(jié)構(gòu)是用于實現(xiàn)程序中需要重復(fù)執(zhí)行的操作3.判斷條件只要其值是布爾類型或是能被Python識別為布爾類型的表達式都可以作為判斷條件(1)檢查是否相等。測試一個變量的值是否與一個特定的值相等==(2)檢查是否不相等。!=(3)檢查多個條件是否同時成立3.判斷條件只要其值是布爾類型或是能被Python識別為布爾類型的表達式都可以作為判斷條件(1)檢查是否相等。測試一個變量的值是否與一個特定的值相等==(2)檢查是否不相等。!=(3)檢查多個條件是否同時成立,and(4)檢查多個條件中是否至少有一個條件成立。檢查多個條件中是否至少有一個條件成立可使用或運算or。3.判斷條件(5)檢查某個元素是否在序列中in(6)檢查某個元素是否不在序列中notin(7)數(shù)值比較和檢查1個數(shù)是否在某個范圍中。大于運算符為>,(8)使用is運算符判斷兩個變量是否引用同一個對象(即判斷它們的內(nèi)存地址是否相同)。is與==運算符不同,==用于判斷兩個變量的值是否相等isnot運算符用于比較兩個對象是不是不同的身份(即它們是否不是同一個對象),4.if語句通用格式if條件表達式1:語句塊1[elif條件表達式2:語句塊2][elif條件表達式3:語句塊3]……[else:語句塊n]if語句它是從上到下逐一檢測條件表達式,直到其中一個條件表達式為True,從而選擇執(zhí)行該分支中的語句塊;執(zhí)行完該分支后,不再執(zhí)行或檢測if語句的其他部分。如果所有條件表達式都為False,則執(zhí)行else子句的分支(如果存在)。if語句中的elif和else部分是可以省略的.5.單分支if語句if語句最簡單的形式為只有一個條件表達式if條件表達式:語句塊16.雙分支if-else語句if-else語句格式如下:if條件表達式:
語句塊1else:
語句塊26.雙分支if-else語句例:接收用戶輸入的分數(shù),如果分數(shù)大于或等于60,則提示“恭喜!你通過課程考試了!”;如果分數(shù)小于60時,顯示“抱歉,你沒有通過課程考試!加油!”score=eval(input('請輸入分數(shù):'))ifscore>=60:print('恭喜!你通過課程考試了!')else:print('抱歉,你沒有通過課程考試!加油!')if-else雙分支語句還有一種簡潔形式if-else雙分支語句還有一種簡潔形式,常用于給變量賦值,格式如下:語句1
if條件表達式1
else語句2>>>age=16>>>cost=40ifage>=18else20#age>=18為False,則cost值為else部分的語句2的返回值>>>cost20>>>print('未成年人')ifage<=18elseprint('成年人')未成年人>>>print('成年人')ifage>18elseprint('未成年人')未成年人7.多分支if語句if條件表達式1:語句塊1[elif條件表達式2:語句塊2][elif條件表達式3:語句塊3]……[else:語句塊n]多分支語句流程圖8.if語句的嵌套if語句的嵌套即在if語句各分支語句塊中可以再嵌套if語句。8.if語句的嵌套在else分支中再嵌套if語句任務(wù)5-2處理排行榜range()函數(shù)21for循環(huán)34目錄zip()函數(shù)map()函數(shù)enumerate()函數(shù)65pass語句目錄任務(wù)概述張華同學(xué)從某個網(wǎng)站上爬取了一些熱搜、電視劇等的排行榜,分別將排行榜標(biāo)題、排名及對應(yīng)各項排行前3的名稱存儲在3個列表title、rank和name中?,F(xiàn)想將每類排行榜標(biāo)題、排名及名稱分別輸出,效果示例如圖5-10所示。請用繪制該程序的流程圖,然后再編程幫助張華同學(xué)實現(xiàn)功能。title:['熱搜','電視劇','綜藝','動漫']rank:['1','2','3','1','2','3','1','2','3','1','2','3']name:['你是我的榮耀','月升滄海','斗羅大陸','你是我的榮耀','我們這十年','昆侖神宮','脫口秀大會','心動的信號','奔跑吧共同富裕篇','斗羅大陸','斗破蒼穹年番','德凱奧特曼']程序輸出效果相關(guān)知識1.for循環(huán)遍歷是指對目標(biāo)對象中的每個元素逐一訪問一次且僅做一次訪問。遍歷循環(huán)是指在循環(huán)中實現(xiàn)對目標(biāo)對象的遍歷。for循環(huán)的語句結(jié)構(gòu)如下:fortargetinsequence:
語句塊1[else:
語句塊2]1.for循環(huán)target是用于保存每次循環(huán)時訪問到sequence中的元素,是在每次迭代中被賦予當(dāng)前元素的變量。sequence必須是可迭代對象??傻鷮ο蟀斜?、元組、字符串、集合、字典、文件等等,1.for循環(huán)---執(zhí)行過程for循環(huán)執(zhí)行過程:依次從sequence中取一個值并使target指向該值,然后執(zhí)行一次語句塊1,重復(fù)這樣的操作,直到sequence中的元素都訪問完。else語句是可選的,只有循環(huán)正常執(zhí)行結(jié)束后才會執(zhí)行語句塊2。s='不負韶華,砥礪前行'forcins:
print(c,end='**')#輸出每次訪問的元素,并以**作為輸出行的結(jié)束符2.range()函數(shù)range()函數(shù)生成一個由整數(shù)構(gòu)成的可迭代對象
range([start,]stop[,step])start:設(shè)置產(chǎn)生整數(shù)的起始值,默認值為0。stop:設(shè)置產(chǎn)生整數(shù)的終止值,但不包括該值。step:設(shè)置產(chǎn)生整數(shù)步長,默認值為1。當(dāng)stop大于start時,步長應(yīng)為正值;當(dāng)stop小于start時,步長應(yīng)為負值。例:行號 代碼1 """程序功能:輸出100行'黎明即起,孜孜為善。'2 程序名稱:range_example.py"""3 foriinrange(100):4 print(f'第{i}行:黎明即起,孜孜為善。')3.zip()函數(shù)zip()函數(shù)返回多個并行迭代對象構(gòu)成的迭代對象。zip()函數(shù)調(diào)用格式如下:zip(interable,interable,……)zip()函數(shù)常用for循環(huán)實現(xiàn)對多個序列的同時遍歷。當(dāng)zip()函數(shù)的參數(shù)列表中各個序列的元素個數(shù)不同時,它會以元素個數(shù)最少的序列為基準(zhǔn)。3.zip()函數(shù)>>>name=['張志強','李華麗','唐勝利']>>>score=[100,120,98,135,70]>>>forn,sinzip(name,score): print("{:s}:{:<d}".format(n,s))仔細觀察運行結(jié)果4.map()函數(shù)map()用于對可迭代對象的每個元素執(zhí)行參數(shù)指定的函數(shù)功能。調(diào)用格式如下:map(function,interable,……)function:函數(shù),可以內(nèi)置函數(shù),第3方函數(shù)或自定義函數(shù)、lambda函數(shù)。interable:一個或多個可迭代對象map()函數(shù)應(yīng)用舉例>>>importmath>>>list(map(math.ceil,(10.3,9.8,5.24)))#ceil()函數(shù)是天花板函數(shù),向上取整
[11,10,6]>>>list(map(pow,(2,3,4),(3,2,1)))#以(2,3,4)中元素為底,(3,2,1)中元素為指數(shù),求冪
[8,9,4]5.pass語句pass語句是一個空操作(NOP,即nooperation)語句,在Python中用作占位符。它不做任何事情,也不返回任何值。當(dāng)定義一個函數(shù)、應(yīng)用分支語句、循環(huán)語句時,如還沒想好函數(shù)、分支或循環(huán)的內(nèi)容,可以用pass填充,來保持代碼結(jié)構(gòu)的完整性,使程序可以正常運行。
當(dāng)pass所在位置的代碼設(shè)計好后,就應(yīng)把pass語句刪除了6.enumerate()函數(shù)enumerate()函數(shù)用于將一個可迭代數(shù)據(jù)類型組合為一個索引序列,同時列出數(shù)據(jù)和數(shù)據(jù)下標(biāo),常用于for循環(huán)。函數(shù)格式如下:enumerate(sequence[,start])sequence:可迭代對象。start:下標(biāo)起始位置的值,可以省略,默認初始值是0。enumerate()函數(shù)>>>ls=['文圣孔丘','武圣關(guān)羽','史圣司馬遷','詩圣杜甫']>>>list(enumerate(ls))[(0,'文圣孔丘'),(1,'武圣關(guān)羽'),(2,'史圣司馬遷'),(3,'詩圣杜甫')]>>>foriteminenumerate(ls,1): print(item)任務(wù)5-3添加學(xué)生成績信息break語句21while循環(huán)3目錄continue語句任務(wù)概述接收用戶輸入學(xué)生ID、姓名及成績,學(xué)生人數(shù)不確定,當(dāng)輸入學(xué)生ID為空時,說明輸入學(xué)生數(shù)據(jù)結(jié)束。學(xué)生數(shù)據(jù)以列表嵌套字典形式存儲例如:[{'ID':'01','name':'張華強','score':90},{'ID':'02','name':'劉澤華','score':120}]。將學(xué)生信息按學(xué)生成績降序輸出。請編程實現(xiàn),此程序所實現(xiàn)的功能可以作為學(xué)生信息管理程序students.py中的添加學(xué)生信息功能模塊。相關(guān)知識1.while循環(huán)while循環(huán)適用于循環(huán)次數(shù)不確定的情況。while循環(huán)的語法格式如下:while循環(huán)條件:
語句塊1[else:
語句塊2]1.while循環(huán)結(jié)合流程圖講解while循環(huán)執(zhí)行過程while循環(huán)也常用來計數(shù),例如:行號
代碼1
#
程序名:mycount.py2
n=03
whilen<=10:4
print(n,end=';')5
n+=12.break語句break語句常與if語句相結(jié)合,用于終止一條循環(huán)語句,使程序流程跳出該循環(huán)語句。切記break是跳出當(dāng)前所在的循環(huán)語句。如果循環(huán)有多層嵌套,break語句只對當(dāng)前層循環(huán)語句起作用。優(yōu)化上面while_demo.py程序行號 代碼1 #程序名while_demo2.py2 tips='\n請輸入任意內(nèi)容,將重復(fù)輸出3次。'3 tips+='\n如果輸入exit,程序?qū)⑼顺鯸n'4 whileTrue:5 c=input(tips)6 print(c*3)7 ifc=='exit':8 break3.continue語句continue語句常與if語句相結(jié)合,用于在滿足特定條件時結(jié)束當(dāng)次的循環(huán),并強制執(zhí)行下一次循環(huán)。這樣,程序會跳過當(dāng)前循環(huán)中continue語句之后的所有剩余語句,直接開始下一次循環(huán)的條件判斷continue是結(jié)束本次循環(huán)。如果循環(huán)嵌套有多層,continue語句只作用當(dāng)前層循環(huán)語句。3.continue語句行號 代碼1 #程序名:number.py2 #區(qū)分break和continue3 whileTrue:4 n=eval(input('請輸入一個數(shù):'))5 ifn==0:6 continue7 elifn>0:8 print('百尺竿頭,更進一步。')9 else:10 break11 print('程序結(jié)束!')4.死循環(huán)在編程中,一個無法靠自身控制終止,而是無限持續(xù)執(zhí)行的循環(huán),稱為“死循環(huán)行號 代碼1
#程序名:demo.py2 n=13 whilen>0:4 print(n)5 n+=1任務(wù)5-4輸出學(xué)生信息雙重循環(huán)應(yīng)用舉例21雙重循環(huán)目錄任務(wù)概述使用雙重循環(huán)實現(xiàn)學(xué)生信息管理程序students.py中“查看所有學(xué)生信息”功能,學(xué)生數(shù)據(jù)采用列表嵌套字典來存儲。學(xué)生信息顯示格式如圖5-15所示。students=[{'ID':'01','name':'張華強','score':90},{'ID':'02','name':'黨澤華','score':120},{'ID':'03','name':'利強勝','score':110}]相關(guān)知識1.雙重循環(huán)雙重循環(huán)結(jié)構(gòu)是兩層循環(huán),外層的循環(huán)稱為外循環(huán),內(nèi)層的循環(huán)稱為內(nèi)循環(huán),示例如下:for循環(huán)變量1in可迭代對象1: #外循環(huán)語句塊1for循環(huán)變量2in可迭代對象2: #內(nèi)循環(huán)語句塊2雙重循環(huán)執(zhí)行過程是首先執(zhí)行外循環(huán)然后再執(zhí)行內(nèi)循環(huán),外循環(huán)每執(zhí)行循環(huán)一次內(nèi)循環(huán)就要完整執(zhí)行一遍。"""雙重循環(huán)舉例行號 代碼1
"""雙重循環(huán)舉例2 程序名:double_cycle.py"""3 formin[1,2]:4 print('m=%d'%m)5 forninrange(3):6 print(n,end=';')7 print()8 print('='*5)案例:請使用雙重循環(huán)編程實現(xiàn)輸出九九乘法表。行號 代碼1 """程序功能:輸出九九乘法表2 程序名:mul_Table.py"""3 forminrange(1,10):4 forninrange(1,m+1):5 print("{}×{}={:<2}".format(n,m,n*m),end='')6 print()2.利用雙重循環(huán)輸出圖案行號 代碼1
#程序名:pattern.py2 forninrange(4): #外循環(huán)控制圖案的行數(shù)3
forminrange(n+1): #內(nèi)循環(huán)控制每行圖案的個數(shù)4
print('*',end='')5 print()任務(wù)5-5異常處理try語句21程序的三種錯誤目錄任務(wù)概述編程:接收用戶輸入兩個數(shù)x和y的值,求出x除以y的商;如果y為0,則提示除數(shù)不能是0;如果x或y不是合法數(shù)字,則提示輸入數(shù)據(jù)不合法,不是合法數(shù)字;如果能正常計算商,則輸出兩個數(shù)的商;無論是否能正常計算商,最后都輸出提示“程序結(jié)束”。程序代碼行號 代碼1
#程序名:Division.py2 try:3 num1=eval(input("請輸入被除數(shù):"))4
num2=eval(input("請輸入除數(shù):"))5
num3=num1/num26 exceptZeroDivisionError:7 print('除數(shù)不是0??!')8
except:9 print('輸入數(shù)據(jù)不合法,不是合法數(shù)字!')10 else:11 print(f"{num1}/{num2}={round(num3,2)}")12 finally:13 print('程序結(jié)束!')相關(guān)知識1.程序的三種錯誤程序錯誤主要包括三種:語法錯誤,運行時錯誤和邏輯錯誤。語法錯誤(Syntax
Error):不能被解釋器或編譯器識別為合法語句而產(chǎn)生的錯誤運行時錯誤(RuntimeErrors):也稱為異?;虮罎?,這類錯誤發(fā)生在程序運行期間,可能是由于無效的輸入、數(shù)組下標(biāo)越界、資源不足等原因造成的。邏輯錯誤(LogicErrors):是指程序能運行,但程序設(shè)計存在問題,導(dǎo)致程序運行時得
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年一帶一路背景下國際關(guān)系策略研究生模擬試題集
- 2026年公共關(guān)系學(xué)原理與實踐應(yīng)用模擬試題
- 2026年能源項目策劃與管理實際情境測試
- 2026年金融投資分析與風(fēng)險管理能力測試題集
- 2026年上海建橋?qū)W院單招綜合素質(zhì)考試模擬試題含詳細答案解析
- 2026年山西華澳商貿(mào)職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測試備考題庫及答案詳細解析
- 2026廣西南寧第十中學(xué)上津校區(qū)(高中部)招聘2人參考考試題庫及答案解析
- 2026年長白山職業(yè)技術(shù)學(xué)院單招綜合素質(zhì)筆試備考題庫含詳細答案解析
- 2026年安陽幼兒師范高等??茖W(xué)校單招職業(yè)技能考試模擬試題含詳細答案解析
- 2026年閩北職業(yè)技術(shù)學(xué)院單招綜合素質(zhì)考試參考題庫含詳細答案解析
- 貿(mào)易企業(yè)貨權(quán)管理辦法
- 小學(xué)數(shù)學(xué)長度單位換算練習(xí)200題及答案
- 電廠廢棄物管理制度
- 新技術(shù)項目立項
- GB/T 18344-2025汽車維護、檢測、診斷技術(shù)規(guī)范
- DB42T 1651-2021 房屋建筑和市政基礎(chǔ)設(shè)施工程安全生產(chǎn)事故隱患排查與治理要求
- 當(dāng)事人提交證據(jù)材料清單(完整版)
- 活物賣買合同協(xié)議書模板
- 酒店總經(jīng)理年終總結(jié)模版
- 清潔驗證完整版本
- 2023年山東省中考英語二輪復(fù)習(xí)專題++時態(tài)+語態(tài)
評論
0/150
提交評論