版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第三章程序控制結(jié)構(gòu)Python深度學(xué)習(xí)及智能車競賽實(shí)踐010203流程圖及程序基本結(jié)構(gòu)程序的分支結(jié)構(gòu)程序的循環(huán)結(jié)構(gòu)目錄第2頁04程序的異常處理05random庫06turtle庫010203流程圖及程序基本結(jié)構(gòu)程序的分支結(jié)構(gòu)程序的循環(huán)結(jié)構(gòu)目錄第3頁04程序的異常處理05random庫06turtle庫程序的流程圖用一系列圖形、流程線和文字說明描述程序的基本操作和控制流程,是程序分析和過程描述的最基本方式。流程圖的基本元素包括7種起止框判斷框處理框輸入/輸出框注釋框流向線連接點(diǎn)01—流程圖及程序基本結(jié)構(gòu)程序流程圖示例:由連接點(diǎn)A連接的一個(gè)程序程序的流程圖01—流程圖及程序基本結(jié)構(gòu)程序由三種基本結(jié)構(gòu)組成:順序結(jié)構(gòu)分支結(jié)構(gòu)循環(huán)結(jié)構(gòu)這些基本結(jié)構(gòu)都有一個(gè)入口和一個(gè)出口,任何程序都由這三種基本結(jié)構(gòu)組合而成。01—流程圖及程序基本結(jié)構(gòu)程序的基本結(jié)構(gòu)語句塊1語句塊2順序結(jié)構(gòu)是程序按照順序依次執(zhí)行的一種運(yùn)行方式,其中語句塊1和語句塊2表示一個(gè)或一組順序執(zhí)行的語句。01—流程圖及程序基本結(jié)構(gòu)順序結(jié)構(gòu)分支結(jié)構(gòu)是程序根據(jù)條件判斷結(jié)果而選擇不同向前執(zhí)行路徑的一種運(yùn)行方式,包括單分支結(jié)構(gòu)和二分支結(jié)構(gòu),可由二分支結(jié)構(gòu)擴(kuò)展形成多分支結(jié)構(gòu)。條件?True語句塊False條件?True語句塊1False語句塊201—流程圖及程序基本結(jié)構(gòu)分支結(jié)構(gòu)循環(huán)結(jié)構(gòu)是程序根據(jù)條件判斷結(jié)果向后反復(fù)執(zhí)行的一種運(yùn)行方式,根據(jù)循環(huán)體觸發(fā)條件不同,包括條件循環(huán)和遍歷循環(huán)結(jié)構(gòu)。01—流程圖及程序基本結(jié)構(gòu)循環(huán)結(jié)構(gòu)實(shí)例:整數(shù)累加。輸入:正整數(shù)R處理:S=1+2+3+…+R輸出:輸出SIPO描述主要用于區(qū)分程序的輸入輸出關(guān)系,重點(diǎn)在于結(jié)構(gòu)劃分,采用自然語言描述流程圖側(cè)重于描述算法的具體流程關(guān)系,結(jié)構(gòu)化關(guān)系相比自然語言描述更進(jìn)一步,有助于表達(dá)算法的具體操作過程代碼描述是最終的程序產(chǎn)出01—流程圖及程序基本結(jié)構(gòu)程序結(jié)構(gòu)描述方式R=eval(input("請輸入正整數(shù):"))i,S=0,0while(i<=R):S=S+ii=i+1print("累加求和",S)010203流程圖及程序基本結(jié)構(gòu)程序的分支結(jié)構(gòu)程序的循環(huán)結(jié)構(gòu)目錄第11頁04程序的異常處理05random庫06turtle庫單分支結(jié)構(gòu):if語句if<條件>:
語句塊如果<條件>的結(jié)果為True,則執(zhí)行語句塊里的語句序列;如果結(jié)果為False,語句塊里的語句會(huì)被跳過。語句塊是一個(gè)或多個(gè)語句;
語句塊中語句與if所在行通過縮進(jìn)表達(dá)包含關(guān)系;02—程序的分支結(jié)構(gòu)if語句的控制流程圖
if語句中語句塊執(zhí)行與否依賴于條件判斷,但無論什么情況,控制都會(huì)轉(zhuǎn)到if語句后與該語句同級(jí)別的下一條語句。單分支結(jié)構(gòu):if語句if<條件>:
語句塊02—程序的分支結(jié)構(gòu)<條件>部分可以使用任何能夠產(chǎn)生True或False的語句形成判斷條件最常見的方式是采用關(guān)系操作符,Python語言共有6個(gè)關(guān)系操作符操作符數(shù)學(xué)符號(hào)描述<<小于<=≤小于等于>=≥
大于等于>>
大于===
等于!=
不等于單分支結(jié)構(gòu):if語句if<條件>:
語句塊02—程序的分支結(jié)構(gòu)操作符及使用描述xandy兩個(gè)條件x和y的邏輯與xory兩個(gè)條件x和y的邏輯或notx
條件x的邏輯非用于條件組合的三個(gè)保留字單分支結(jié)構(gòu):if語句if<條件>:
語句塊02—程序的分支結(jié)構(gòu)實(shí)例3.1:智能車電池電壓檢測智能車比賽中使用的鎳氫電池電壓范圍在8V-16V之間,而智能車微處理單元的工作電壓在10V-13V之間,為了保證智能車穩(wěn)定的運(yùn)行,在開機(jī)之前,需要檢查電池電壓,實(shí)際使用中電池電壓由電壓讀取電路獲得。單分支結(jié)構(gòu):if語句02—程序的分支結(jié)構(gòu)if-else語句用來形成二分支結(jié)構(gòu),語法格式如下:if<條件>:<語句塊1>else:<語句塊2>二分支語句用于區(qū)分<條件>的兩種可能True或者False,分別形成執(zhí)行路徑;<語句塊1>是在if條件滿足后執(zhí)行的一個(gè)或多個(gè)語句序列;<語句塊2>是if條件不滿足后執(zhí)行的語句序列。二分支結(jié)構(gòu)02—程序的分支結(jié)構(gòu)二分支結(jié)構(gòu):if-else語句02—程序的分支結(jié)構(gòu)二分支結(jié)構(gòu)簡潔表達(dá)方式,適合通過判斷返回特定值,語法格式如下:
<表達(dá)式1>if<條件>else<表達(dá)式2>Vol=eval(input("請輸入電池電壓,單位V:"))print(“電池{}電壓要求!”.format(“符合”if10<=Vol<=13else"不符合"))二分支結(jié)構(gòu)02—程序的分支結(jié)構(gòu)Python的if-elif-else描述多分支結(jié)構(gòu),語句格式如下:if<條件1>:<語句塊1>elif<條件2>:<語句塊2>...else:<語句塊N>條件1
?True語句塊NFalseFalseFalse……條件N-1
?語句塊1語句塊N-1多分支結(jié)構(gòu)02—程序的分支結(jié)構(gòu)多分支結(jié)構(gòu)是二分支結(jié)構(gòu)的擴(kuò)展,這種形式通常用于設(shè)置同一個(gè)判斷條件的多條執(zhí)行路徑;程序依次評(píng)估尋找第一個(gè)結(jié)果為True的條件,執(zhí)行該條件下的語句塊,結(jié)束后跳過整個(gè)if-elif-else結(jié)構(gòu),執(zhí)行后面的語句;如果沒有任何條件成立,else下面的語句塊被執(zhí)行;else子句是可選的。條件1
?True語句塊NFalseFalseFalse……條件N-1
?語句塊1語句塊N-102—程序的分支結(jié)構(gòu)02—程序的分支結(jié)構(gòu)010203流程圖及程序基本結(jié)構(gòu)程序的分支結(jié)構(gòu)程序的循環(huán)結(jié)構(gòu)目錄第23頁04程序的異常處理05random庫06turtle庫遍歷循環(huán)根據(jù)循環(huán)執(zhí)行次數(shù)的確定性,循環(huán)可以分為確定次數(shù)循環(huán)和非確定次數(shù)循環(huán);確定次數(shù)循環(huán)指循環(huán)體對(duì)循環(huán)次數(shù)有明確的定義,循環(huán)次數(shù)采用遍歷結(jié)構(gòu)中元素個(gè)數(shù)來體現(xiàn)。Python通過保留字for實(shí)現(xiàn)“遍歷循環(huán)”:for<循環(huán)變量>in<遍歷結(jié)構(gòu)>:<語句塊>
03—程序的循環(huán)結(jié)構(gòu)遍歷結(jié)構(gòu)可以是字符串、文件、組合數(shù)據(jù)類型或range()函數(shù):01234>>>foriinrange(5): print(i)BUAA>>>forcin"BUAA": print(c)循環(huán)N次foriinrange(N):<語句塊>遍歷文件fi的每一行forlineinfi:<語句塊>遍歷字符串sforcins:<語句塊>遍歷列表lsforiteminls:<語句塊>遍歷循環(huán)03—程序的循環(huán)結(jié)構(gòu)for<循環(huán)變量>in<遍歷結(jié)構(gòu)>:<語句塊1>else:<語句塊2>當(dāng)for循環(huán)正常執(zhí)行之后,程序會(huì)繼續(xù)執(zhí)行else語句中內(nèi)容;else語句只在循環(huán)正常執(zhí)行之后才執(zhí)行并結(jié)束,可以在<語句塊2>中放置判斷循環(huán)執(zhí)行情況的語句。>>>
循環(huán)進(jìn)行中:B循環(huán)進(jìn)行中:U循環(huán)進(jìn)行中:A循環(huán)進(jìn)行中:A循環(huán)正常結(jié)束forsin"BUAA":print("循環(huán)進(jìn)行中:"+s)else:s="循環(huán)正常結(jié)束"print(s)03—程序的循環(huán)結(jié)構(gòu)遍歷循環(huán)擴(kuò)展模式一直保持循環(huán)操作直到特定循環(huán)條件不被滿足才結(jié)束,不需要提前知道確定的循環(huán)次數(shù)。
Python通過保留字while實(shí)現(xiàn)條件循環(huán):while<條件>:<語句塊>0369>>>n=0>>>whilen<10:print(n)n=n+303—程序的循環(huán)結(jié)構(gòu)條件循環(huán)while<條件>:<語句塊1>else:<語句塊2>>>>
循環(huán)進(jìn)行中:B循環(huán)進(jìn)行中:U循環(huán)進(jìn)行中:A循環(huán)進(jìn)行中:A循環(huán)正常結(jié)束s,idx="BUAA",0whileidx<len(s):print("循環(huán)進(jìn)行中:"+s[idx])
idx+=1else:s="循環(huán)正常結(jié)束"print(s)03—程序的循環(huán)結(jié)構(gòu)條件循環(huán)擴(kuò)展模式實(shí)例3.6:智能車電池電壓持續(xù)檢測(for語句)智能車比賽中需要持續(xù)監(jiān)控電池電壓,設(shè)計(jì)程序每隔10步檢查一次電池電壓。03—程序的循環(huán)結(jié)構(gòu)實(shí)例3.8:智能車電池電壓持續(xù)檢測(while語句)智能車比賽中需要持續(xù)監(jiān)控電池電壓,設(shè)計(jì)程序每隔10步檢查一次電池電壓。03—程序的循環(huán)結(jié)構(gòu)循環(huán)保留字:break和continue作用:輔助控制循環(huán)執(zhí)行:Break:來跳出當(dāng)前層循環(huán),脫離該循環(huán)后程序從循環(huán)后代碼繼續(xù)執(zhí)行;Continue:結(jié)束當(dāng)前層當(dāng)次循環(huán),即跳過循環(huán)體中下面尚未執(zhí)行的語句,進(jìn)行下一次循環(huán),但不跳出當(dāng)前層循環(huán)。03—程序的循環(huán)結(jié)構(gòu)區(qū)別:continue語句只結(jié)束本次循環(huán),而不終止整個(gè)循環(huán)的執(zhí)行;break語句則是結(jié)束整個(gè)循環(huán)過程,不再判斷執(zhí)行循環(huán)的條件是否成立。>>>
VEICLE>>>
VEforsin"VEHICLE":ifs=="H":continueprint(s,end="")forsin"VEHICLE":ifs=="H":breakprint(s,end="")循環(huán)保留字:break和continue03—程序的循環(huán)結(jié)構(gòu)在for循環(huán)和while循環(huán)中的else擴(kuò)展用法中:Break和return語句被執(zhí)行對(duì)else有影響;continue保留字對(duì)else沒有影響。>>>
VEICLE正常退出>>>
VEforsin"VEHICLE":ifs=="H":continueprint(s,end="")else:print("正常退出")forsin"VEHICLE":ifs=="H":breakprint(s,end="")else:print("正常退出")循環(huán)保留字:break和continue03—程序的循環(huán)結(jié)構(gòu)>>>
BBBBBBBBBBUAAAAAAAAAAAAAAAAAAAA
forsin“BUAA":foriinrange(10):print(s,end="")ifs==“U":break多層循環(huán)中break語句只能跳出最內(nèi)層循環(huán)。循環(huán)保留字:break和continue03—程序的循環(huán)結(jié)構(gòu)實(shí)例3.10:智能車電池電壓持續(xù)檢測智能車比賽中需要持續(xù)監(jiān)控電池電壓,設(shè)計(jì)程序每隔10步檢查一次電池電壓,檢測到異常則停止檢查。03—程序的循環(huán)結(jié)構(gòu)010203流程圖及程序基本結(jié)構(gòu)程序的分支結(jié)構(gòu)程序的循環(huán)結(jié)構(gòu)目錄第36頁04程序的異常處理05random庫06turtle庫當(dāng)用戶輸入的不是數(shù)字呢?
分析下面這段小程序:num=eval(input("請輸入一個(gè)整數(shù):"))print(num**2)>>>請輸入一個(gè)整數(shù):10010000>>>請輸入一個(gè)整數(shù):NOTraceback(mostrecentcalllast):File"D:/pycodes/c4/3.py",line1,in<module>num=eval(input("請輸入一個(gè)整數(shù):"))File"<string>",line1,in<module>NameError:name'No'isnotdefined04—程序的異常處理Python解釋器返回了異常信息,同時(shí)程序退出04—程序的異常處理異常處理:try-except語句Python異常信息中最重要的部分是異常類型,它表明了發(fā)生異常的原因,也是程序處理異常的依據(jù)。Python使用try-except語句實(shí)現(xiàn)異常處理,基本的語法格式如下:try: <語句塊1>except<異常類型>: <語句塊2>04—程序的異常處理04—程序的異常處理異常處理:try-except語句異常的高級(jí)用法try-except語句可以支持多個(gè)except語句,語法格式如下:最后一個(gè)except語句沒有指定任何類型,表示它對(duì)應(yīng)的語句塊可以處理所有其他異常;這個(gè)過程與if-elif-else語句類似,是分支結(jié)構(gòu)的一種表達(dá)方式。try: <語句塊1>except<異常類型1>: <語句塊2>….except<異常類型N>: <語句塊N+1>except: <語句塊N+2>04—程序的異常處理010203流程圖及程序基本結(jié)構(gòu)程序的分支結(jié)構(gòu)程序的循環(huán)結(jié)構(gòu)目錄第42頁04程序的異常處理05random庫06turtle庫random庫是使用隨機(jī)數(shù)的Python標(biāo)準(zhǔn)庫random庫主要用于生成隨機(jī)數(shù);偽隨機(jī)數(shù):采用梅森旋轉(zhuǎn)算法生成的(偽)隨機(jī)序列中元素;05—random庫函數(shù)描述seed(a=None)初始化隨機(jī)數(shù)種子,默認(rèn)值為當(dāng)前系統(tǒng)時(shí)間random()生成一個(gè)[0.0,1.0]之間的隨機(jī)小數(shù)randint(a,b)生成一個(gè)[a,b]之間的整數(shù)getrandbits(k)生成一個(gè)k比特長度的隨機(jī)整數(shù)randrange(start,stop[,step])生成一個(gè)[start,stop]之間以step為步數(shù)的隨機(jī)整數(shù)uniform(a,b)生成一個(gè)[a,b]之間的隨機(jī)小數(shù)choice(seq)從序列類型(例如:列表)中隨機(jī)返回一個(gè)元素shuffle(seq)將序列類型中元素隨機(jī)排列,返回打亂后的序列sample(pop,k)從pop類型中隨機(jī)選取k個(gè)元素,以列表類型返回05—random庫>>>fromrandomimport*>>>random()0.2922089114412476>>>uniform(1,10)1.5913082783598524>>>uniform(1,20)18.964924311283845>>>randrange(0,100,4)#從0開始到100以4遞增的元素中隨機(jī)返回96>>>choice(range(100))97>>>ls=list(range(10))>>>print(ls)[0,1,2,3,4,5,6,7,8,9]>>>shuffle(ls)>>>print(ls)[1,2,8,9,0,7,3,6,5,4]random庫引用對(duì)random庫的引用可以采用下面兩種方式實(shí)現(xiàn):importrandomfromrandomimport*05—random庫生成隨機(jī)數(shù)之前可以通過seed()函數(shù)指定隨機(jī)數(shù)種子,隨機(jī)種子一般是一個(gè)整數(shù),只要種子相同,每次生成的隨機(jī)數(shù)序列也相同,這種方法便于測試和同步數(shù)據(jù)。
>>>fromrandomimport*>>>seed(125)#隨機(jī)種子賦值125>>>"{}.{}.{}".format(randint(1,10),randint(1,10),randint(1,10))'4.4.10'>>>"{}.{}.{}".format(randint(1,10),randint(1,10),randint(1,10))'5.10.3'>>>seed(125)#再次給隨機(jī)種子賦值125>>>"{}.{}.{}".format(randint(1,10),randint(1,10),randint(1,10))'4.4.10'05—random庫05—random庫010203流程圖及程序基本結(jié)構(gòu)程序的分支結(jié)構(gòu)程序的循環(huán)結(jié)構(gòu)目錄第48頁04程序的異常處理05random庫06turtle庫Turtle庫(海龜庫)是turtle繪圖體系的Python實(shí)現(xiàn)-
Python語言的標(biāo)準(zhǔn)庫之一;入門級(jí)的圖形繪制函數(shù)庫;turtle繪圖體系:1969年誕生,主要用
于程序設(shè)計(jì)入門。06—turtle庫turtle的繪圖原理-有一只海龜,起始在窗體正中心(0,0),在畫布上游走
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國跨境電子商務(wù)數(shù)字支付系統(tǒng)風(fēng)險(xiǎn)防控與合規(guī)管理報(bào)告
- 2026北京信息科技大學(xué)招聘35人備考題庫(第一批)附參考答案詳解(綜合卷)
- 2026四川樂山市沐川縣人力資源和社會(huì)保障局招聘城鎮(zhèn)公益性崗位人員10人備考題庫帶答案詳解(黃金題型)
- 2026年及未來5年市場數(shù)據(jù)中國奶咖行業(yè)發(fā)展監(jiān)測及投資策略研究報(bào)告
- 2026四川廣元市青川縣博睿人力資源有限公司招聘工程項(xiàng)目管理人員2人備考題庫含答案詳解
- 2026內(nèi)蒙古呼和浩特市新城區(qū)第十五幼兒園招聘備考題庫附答案
- 2026年上海市普陀區(qū)社區(qū)工作者公開招聘考試大綱備考題庫附答案
- 2026春季云南昭通職業(yè)學(xué)院招募銀齡教師支持職業(yè)教育13人備考題庫必考題
- 2026山東濰坊理工學(xué)院“雙師型”教師招聘42人備考題庫及答案詳解一套
- 北京市大興區(qū)衛(wèi)生健康委員會(huì)面向應(yīng)屆畢業(yè)生招聘筆試備考題庫及答案1套
- 2026年無錫工藝職業(yè)技術(shù)學(xué)院單招綜合素質(zhì)考試題庫附答案解析
- 2026年中考語文一輪復(fù)習(xí)課件:記敘文類閱讀技巧及示例
- 2025腫瘤靶向藥物皮膚不良反應(yīng)管理專家共識(shí)解讀課件
- 腳手架施工安全技術(shù)交底標(biāo)準(zhǔn)模板
- 海姆立克急救課件 (完整版)
- 淘寶主體變更合同范本
- 2025中好建造(安徽)科技有限公司第二次社會(huì)招聘13人筆試歷年參考題庫附帶答案詳解
- 《交易心理分析》中文
- 護(hù)理創(chuàng)新實(shí)踐與新技術(shù)應(yīng)用
- 2025年海南事業(yè)單位聯(lián)考筆試筆試考題(真題考點(diǎn))及答案
- 2025中國電信股份有限公司重慶分公司社會(huì)成熟人才招聘筆試考試參考題庫及答案解析
評(píng)論
0/150
提交評(píng)論