版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第三章
流程控制Python程序設(shè)計(jì)01選擇結(jié)構(gòu)02循環(huán)結(jié)構(gòu)03本章回顧01選擇結(jié)構(gòu)
選擇結(jié)構(gòu)也稱為分支結(jié)構(gòu),對(duì)應(yīng)現(xiàn)實(shí)生活中的選擇問題,比如我們?yōu)g覽購物網(wǎng)站時(shí),如果喜歡此件商品就選擇買下它,如果不喜歡則選擇瀏覽下一個(gè);中午吃飯時(shí)可以選擇在家做飯,也可以選擇點(diǎn)外賣或者去外面餐廳吃。
Python中的選擇結(jié)構(gòu)分為單分支(if語句)、雙分支(if...else語句)和多分支(if...elif...else語句)三種。if語句介紹單分支使用if語句表達(dá),其基本語法如下:if表達(dá)式:
語句塊其中表達(dá)式可以是布爾值、比較表達(dá)式、邏輯表達(dá)式等,如果表達(dá)式為真則執(zhí)行“語句塊”,如果表達(dá)式為假則跳過“語句塊”,繼續(xù)執(zhí)行后面的語句。單分支的流程圖如右圖所示。if語句的使用使用if語句的舉例如下圖所示:score=float(input('請(qǐng)輸入您的語文考試成績(jī):'))if(score<60):print('您的成績(jī)不合格')print('謝謝使用!')if...else語句介紹雙分支使用if...else語句表達(dá),其基本語法如下:if表達(dá)式:
語句塊1else:
語句塊2if...else語句可以理解為如果表達(dá)式為真就執(zhí)行語句塊1,否則執(zhí)行語句塊2。語句塊可以由一條語句組成,也可以由多條語句組成。if...else語句的流程圖如下圖所示。if...else語句介紹需要注意的是else必須要和if搭配使用,單獨(dú)使用else會(huì)報(bào)錯(cuò),如下圖所示:if...else語句的使用if...else語句的使用舉例如下圖所示:score=float(input('請(qǐng)輸入您的語文考試成績(jī):'))if(score<60):print('您的成績(jī)不合格')else:print('您的成績(jī)合格')print('謝謝使用!')if...elif...else語句介紹多分支就是在雙分支語句的基礎(chǔ)上,對(duì)各種不同情況做進(jìn)一步的區(qū)分,多分支使用if...elif...else語句表達(dá),其基本語法如下:if表達(dá)式1:
語句塊1elif表達(dá)式2:
語句塊2elif表達(dá)式3:
語句塊3......else:
語句塊nif...elif...else語句介紹
if...elif...else語句的執(zhí)行邏輯,即若表達(dá)式1為真執(zhí)行語句塊1,否則依次判斷后續(xù)elif的表達(dá)式,直到所有表達(dá)式為假則執(zhí)行else下的語句塊n。同時(shí)指出如果業(yè)務(wù)不需要,最后的else語句塊可以省略,且沒有else語句時(shí)就沒有其對(duì)應(yīng)的縮進(jìn)語句。還提到多分支語句有流程圖如右圖所示。if...elif...else語句的使用接下來我們使用if...elif...else語句將下圖中的情況進(jìn)行進(jìn)一步區(qū)分,如下圖所示:score=float(input('請(qǐng)輸入您的語文考試成績(jī):'))if(score<0orscore>100):print('您輸入的內(nèi)容不合法')elif(score>=90):print('您的成績(jī)優(yōu)秀')elif(score>=70andscore<90):print('您的成績(jī)良好')elif(score>=60andscore<70):print('您的成績(jī)及格')else:print('您的成績(jī)不及格')print('謝謝使用!')if語句的嵌套if語句可以嵌套使用,在開發(fā)過程中,可以結(jié)合需求選擇嵌套方式,這里將“案例1:計(jì)算體脂率”中得到的結(jié)果用分支結(jié)構(gòu)進(jìn)行判斷,如下圖所示。name=input("請(qǐng)輸入姓名:")sex=int(input("請(qǐng)輸入性別(男為1,女為0):"))age=int(input("請(qǐng)輸入年齡:"))height=float(input("請(qǐng)輸入身高(單位:m):"))weight=float(input("請(qǐng)輸入體重(單位:kg):"))BMI=weight/(height*height)rate=1.2*BMI+0.23*age-5.4-10.8*sexprint('-------------------個(gè)人信息—{}--------------------------'.format(name))print(('姓名:{}\n性別:{}\n年齡:{}\n身高(cm):{}\n體重(kg):{}\n''BMI:{}\n體脂率:{}').format(name,sex,age,height,weight,BMI,rate))#使用if嵌套進(jìn)行判斷if(sex==1):if(rate<15):print('您的體型偏瘦')elif(rate>=15andrate<=18):print('您的體型正常')elif(rate>18):print('您的體型偏胖')if(sex==0):if(rate<25):print('您的體型偏瘦')elif(25>=rate<=28):print('您的體型正常')else:print('您的體型偏胖')案例【案例描述】在大學(xué)學(xué)習(xí)階段,某門課程的期末考試采用“n頁開卷”形式考查學(xué)生的學(xué)習(xí)情況?!皀頁開卷”是指考生可以攜帶不超過n頁A4紙大小的手抄紙質(zhì)資料進(jìn)入考場(chǎng)應(yīng)考?!景咐蟆磕M考生進(jìn)入考場(chǎng)前的身份查驗(yàn)流程,只有具備以下3個(gè)條件,才能進(jìn)入考場(chǎng)參加考試(在本案例中,假設(shè)n=3)。學(xué)生校園卡姓名出現(xiàn)在考生名單中。學(xué)生身份證信息與學(xué)生校園卡中的信息一致。 沒有攜帶手抄紙質(zhì)資料或所攜帶的手抄紙質(zhì)資料頁數(shù)不超過3頁。案例02循環(huán)結(jié)構(gòu)在日常生活中,人類、動(dòng)物每天都要吃飯、睡覺,太陽每天都會(huì)東升西落,在編程語言中,類似這樣反復(fù)做同一件事情叫做循環(huán)。在Python中主要有while循環(huán)和for循環(huán)兩種類型。while循環(huán)介紹while循環(huán)又稱為條件循環(huán),是通過一個(gè)判斷條件來控制是否需要反復(fù)執(zhí)行循環(huán)體中的語句。while循環(huán)由while關(guān)鍵字、條件表達(dá)式、冒號(hào)和循環(huán)體組成,語法如下:while判斷條件:
循環(huán)體while循環(huán)介紹循環(huán)體即執(zhí)行語句,可以是單個(gè)語句或語句塊,當(dāng)判斷條件為真時(shí)則執(zhí)行循環(huán)體,執(zhí)行完畢后,重新進(jìn)入while循環(huán)進(jìn)行條件判斷,如果判斷條件為真時(shí)則執(zhí)行循環(huán)體,以此類推,直到判斷條件為假時(shí)退出循環(huán)。while循環(huán)的執(zhí)行過程如右圖所示。while循環(huán)的使用#構(gòu)建數(shù)據(jù)numbers=list(range(1,20,3))print('數(shù)字列表:',numbers)#用于存放奇數(shù)odd=[]#用于存放偶數(shù)even=[]#使用while循環(huán),直到列表中沒有元素停止循環(huán)while(len(numbers)>0):number=numbers.pop()if(number%2==0):even.append(number)else:odd.append(number)print('奇數(shù):',odd)print('偶數(shù):',even)while循環(huán)的使用舉例如下圖所示。while循環(huán)使用總結(jié)在使用while循環(huán)時(shí),如果條件判斷語句一直是True,循環(huán)就會(huì)一直執(zhí)行下去,也就是常說的死循環(huán),如右圖所示。遇到這種情況,可以單擊JupyterNotebook上方的“中斷服務(wù)”按鈕(如右圖)強(qiáng)制終止程序。while循環(huán)使用總結(jié)在使用while循環(huán)時(shí),需注意以下幾點(diǎn):①在使用while循環(huán)時(shí),需添加將循環(huán)條件變?yōu)镕alse的代碼。②循環(huán)體既可以由單個(gè)語句組成,也可以由多條語句組成。③如果循環(huán)體中的語句尚未確定,可以先使用pass語句占位。for循環(huán)介紹for循環(huán)也稱計(jì)次循環(huán)、遍歷循環(huán),是重復(fù)執(zhí)行一定次數(shù)的循環(huán),可以用于數(shù)值循環(huán)和遍歷字符串、列表等序列。for循環(huán)由保留字for和in組成,語法如下:for循環(huán)變量in對(duì)象:
循環(huán)體if語句其中循環(huán)變量表示每次循環(huán)所獲得的元素,對(duì)象指的是待遍歷或迭代的對(duì)象,循環(huán)體即執(zhí)行語句,可以是單個(gè)語句或語句塊。簡(jiǎn)單理解for循環(huán)是由保留字for和in構(gòu)成的循環(huán)結(jié)構(gòu),它可以從遍歷對(duì)象中逐一提取元素放到循環(huán)變量里,當(dāng)遍歷對(duì)象中的所有元素都放入循環(huán)變量,且已執(zhí)行完成循環(huán)體操作,那么循環(huán)結(jié)束,程序退出。for循環(huán)的執(zhí)行過程如右圖所示。使用for循環(huán)進(jìn)行數(shù)值循環(huán)for循環(huán)最基本的用法就是進(jìn)行數(shù)值循環(huán),常常和range函數(shù)結(jié)合使用,舉例如右圖所示。sum1=0sum2=0sum3=0#計(jì)算1到100的累加foriinrange(101):sum1+=iprint('1+2+3+...+100=',sum1)#計(jì)算1到100的奇數(shù)累加foriinrange(1,101,2):sum2+=iprint('1+3+5+...+99=',sum2)#計(jì)算1到100的偶數(shù)累加foriinrange(2,101,2):sum3+=iprint('2+4+6+...+100=',sum3)使用for循環(huán)進(jìn)行序列遍歷使用for循環(huán)可以對(duì)字符串、列表、元組等序列類型進(jìn)行遍歷,舉例如右圖所示。#遍歷字符串text1='萬事皆有可能'foriinrange(len(text1)):print(i,text1[i])foriintext1:print(i)#遍歷列表text2=['嶺外音書斷','經(jīng)冬復(fù)歷春','近鄉(xiāng)情更怯','不敢問來人']foriinrange(len(text2)):print(i,text2[i])foritemintext2:print(item)#遍歷元組text3=('春','夏','秋','冬')foriinrange(len(text3)):print(i,text3[i])foritemintext3:print(item)#遍歷字典#通過items方法或者字典的“鍵值對(duì)”列表text4={'語文':89,'數(shù)學(xué)':96,'英語':80}foritemintext4.items():print(item)forkey,valueintext4.items():print(key,value)使用for循環(huán)進(jìn)行序列遍歷上頁的運(yùn)行結(jié)果如右圖所示。通過以上案例可以看出字符串、列表、元組的遍歷方式基本一致,而字典因?yàn)榇鎯?chǔ)的是“鍵值對(duì)”且無序,遍歷的方式會(huì)有所不同。for循環(huán)和enumerate函數(shù)在上頁代碼中,我們?yōu)榱双@取字符串、列表、元組的索引值,采用的方式是range()函數(shù)和len()函數(shù)結(jié)合使用,除此之外,我們還可以借助enumerate()函數(shù)同時(shí)輸出索引值和元素內(nèi)容。enumerate()函數(shù)用于將一個(gè)可遍歷的數(shù)據(jù)對(duì)象組合成一個(gè)索引序列,同時(shí)列出數(shù)據(jù)和數(shù)據(jù)下標(biāo),一般用在for循環(huán)當(dāng)中。enumerate()函數(shù)的語法如下:enumerate(sequence,[start=0])enumerate()函數(shù)的參數(shù)說明如下圖所示。參數(shù)描述sequence用于指定一個(gè)序列、迭代器或其它支持迭代的對(duì)象start【可選】用于指定下標(biāo)起始位置,默認(rèn)為0for循環(huán)和enumerate函數(shù)使用for循環(huán)和enumerate()函數(shù)進(jìn)行序列遍歷的舉例如下圖所示。list1=['向晚意不適','驅(qū)車登古原','夕陽無限好','只是近黃昏']#默認(rèn)索引從0開始forindex,iteminenumerate(list1):print(index,item)#指定索引從1開始forindex,iteminenumerate(list1,start=1):print(index,item)在Python中,有一種方法可以快速創(chuàng)建序列,就是利用for循環(huán)來循環(huán)創(chuàng)建序列,也就是推導(dǎo)式。推導(dǎo)式是Python的一種獨(dú)有特性,列表推導(dǎo)式的語法如下:使用for循環(huán)快速創(chuàng)建序列[conditionforvariniterator[ifcondition]]使用for循環(huán)快速創(chuàng)建序列其中[ifcondition]是可選的,元組推導(dǎo)式和列表的類似,只是將[]換成(),接下來我們看具體使用,如右圖所示。使用for循環(huán)快速創(chuàng)建序列上頁代碼中用到了random模塊,Python中的random模塊用于生成隨機(jī)數(shù),其中randint()方法用于生成隨機(jī)整數(shù),random模塊下還有一些其它的用于生成隨機(jī)數(shù)的方法,我們將在第7章展開介紹。字典的推導(dǎo)式與列表、元組有一些不同,其語法如下:使用for循環(huán)快速創(chuàng)建序列和列表推導(dǎo)式類似,[ifcondition]是可選的,字典推導(dǎo)式的使用舉例如下圖所示。循環(huán)嵌套和if語句類似,循環(huán)也可以嵌套使用,循環(huán)嵌套顧名思義就是在一個(gè)循環(huán)中嵌入另一個(gè)循環(huán)。循環(huán)嵌套可以是兩個(gè)while循環(huán)嵌套、兩個(gè)for循環(huán)嵌套、while循環(huán)和for循環(huán)嵌套、多層循環(huán)嵌套等,在開發(fā)過程中,可以結(jié)合需求靈活運(yùn)用。循環(huán)嵌套1.使用循環(huán)嵌套打印九九乘法表接下來用一個(gè)最經(jīng)典的九九乘法表來了解循環(huán)嵌套的使用。如果想要生成如圖3-20的九九乘法表,通過觀察我們發(fā)現(xiàn),它是由9行9列組成,我們可以用外層循環(huán)控制行,里層循環(huán)控制列(如下圖所示)。循環(huán)嵌套打印九九乘法表循環(huán)嵌套使用循環(huán)嵌套打印空心四邊形為了加深對(duì)循環(huán)嵌套的理解,我們?cè)倥e一個(gè)使用while循環(huán)嵌套打印空心四邊形的例子,如代碼左圖所示。循環(huán)嵌套也可以使用for循環(huán)嵌套實(shí)現(xiàn)循環(huán)嵌套結(jié)合上面的案例,我們可以總結(jié)出:一般用外層循環(huán)控制行,內(nèi)層循環(huán)控制列。for循環(huán)和while循環(huán)之間可以相互轉(zhuǎn)化。外層循環(huán)執(zhí)行一次,里層循環(huán)會(huì)執(zhí)行多次。循環(huán)控制在使用循環(huán)語句時(shí),可以使用break語句和continue語句對(duì)循環(huán)進(jìn)行控制,break語句用于結(jié)束整個(gè)循環(huán),continue用于結(jié)束當(dāng)次循環(huán)。舉個(gè)生活中例子,假如你正在看一個(gè)電視劇,由于某個(gè)演員你不喜歡你想棄劇,不想繼續(xù)看下去了,此時(shí)使用break;如果是某一集劇情設(shè)置不合理,你打算跳過本集,繼續(xù)觀看下一集,此時(shí)使用continue。除此之外,在Python中還有一個(gè)起到占位作用的空語句pass。break語句break語句用于結(jié)束當(dāng)前正在執(zhí)行的循環(huán)(for、while),轉(zhuǎn)而執(zhí)行這些循環(huán)后面的語句。break語句一般與if語句搭配使用,表示在某種條件下跳出循環(huán)。break語句的使用形式如下所示:下圖為for循環(huán)中break語句的執(zhí)行過程(while循環(huán)和for循環(huán)類似)。break語句break語句的使用舉例如下圖所示。continue語句continue語句用于結(jié)束當(dāng)前正在執(zhí)行的這一次循環(huán)(for、while),接著執(zhí)行下一次循環(huán)。即跳過循環(huán)體中尚未執(zhí)行的語句或語句序列,接著進(jìn)行下一次是否執(zhí)行循環(huán)的判定。continue語句的使用形式如下所示:右圖為for循環(huán)中continue語句的執(zhí)行過程(while循環(huán)和for循環(huán)類似)。continue語句continue語句的使用舉例如下圖所示。我們可以總結(jié)出continue語句只是結(jié)束本次循環(huán),進(jìn)入到下一循環(huán);而break語句則是結(jié)束整個(gè)循環(huán),不再進(jìn)行條件判斷。pass語句Python中提供了一個(gè)pass空語句,表示不做任何事情,應(yīng)用場(chǎng)景是為了保持程序結(jié)構(gòu)的完整性時(shí),用來占位。舉例如下圖所示。案例【案例描述】剪刀石頭布游戲又稱“猜丁殼”、“猜拳”,是比較古老的游戲,游戲的起源可追溯到漢朝的手勢(shì)令。在中國(guó)很小的孩子都會(huì)玩這個(gè)游戲,因?yàn)樗囊?guī)則很簡(jiǎn)單,石頭克剪刀,剪刀克布,布克石頭。這個(gè)游戲的主要目的是為了解決爭(zhēng)議,因?yàn)槿呦嗷ブ萍s,因此不論平局幾次,總會(huì)有勝負(fù)的時(shí)候?!景咐蟆吭O(shè)計(jì)一個(gè)剪刀石頭布游戲,游戲規(guī)則如下:①玩家出剪刀或石頭或布。②電腦隨機(jī)輸出一個(gè)剪刀或石頭或布。③將玩家出的結(jié)果和電腦出的結(jié)果進(jìn)行比對(duì)。案例案例運(yùn)行結(jié)果本章回顧1.關(guān)于Python選擇結(jié)構(gòu),描述錯(cuò)誤的是()。A.選擇結(jié)構(gòu)也稱為分支結(jié)構(gòu),對(duì)應(yīng)現(xiàn)實(shí)生活中的選擇問題B.Python中的選擇結(jié)構(gòu)分為單分支(if語句)、雙分支(if...else語句)和多分支(if...elif...else語句)三種C.if...else語句可以理解為,如果表達(dá)式為真則執(zhí)行“語句塊”,如果表達(dá)式為假則跳過
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 河南科技大學(xué)《微積分》2021-2022學(xué)年第一學(xué)期期末試卷
- 河南科技大學(xué)《機(jī)械設(shè)計(jì)基礎(chǔ)B》2021-2022學(xué)年第一學(xué)期期末試卷
- 河南科技大學(xué)《工業(yè)藥劑學(xué)》2021-2022學(xué)年第一學(xué)期期末試卷
- 天津市濱海新區(qū)大港第六中學(xué)2024-2025學(xué)年八年級(jí)上學(xué)期11月期中道德與法治試題
- 配電箱電項(xiàng)目運(yùn)營(yíng)指導(dǎo)方案
- 2021年2月焊工高級(jí)技師模擬試題及答案卷28
- 腦電圖掃描儀項(xiàng)目運(yùn)營(yíng)指導(dǎo)方案
- DB14∕T 1146-2015 白羊草栽培技術(shù)規(guī)程
- 雞蛋切片器非電項(xiàng)目營(yíng)銷計(jì)劃書
- 國(guó)家職業(yè)技術(shù)技能標(biāo)準(zhǔn) X5-99-02-06 微水電利用工 勞社廳發(fā)20055號(hào)
- YC/T 336-2020煙葉收購站設(shè)計(jì)規(guī)范
- SB/T 10016-2008冷凍飲品冰棍
- 公開課課件拿來主義
- 機(jī)加工企業(yè)風(fēng)險(xiǎn)告知牌通用
- 管理運(yùn)籌學(xué)7運(yùn)輸問題課件
- 薪酬管理的工具和技術(shù)英文版課件
- 提高住院患者抗菌藥物治療前送檢率培訓(xùn)
- 最新病歷書寫規(guī)范課件
- 一年級(jí)上冊(cè)語文全冊(cè)課件
- 聚丙烯纖維課件
- 鐵礦粉燒結(jié)的基本理論
評(píng)論
0/150
提交評(píng)論