版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Python編程案例教程本章導(dǎo)讀在解決實(shí)際問(wèn)題時(shí),我們經(jīng)常會(huì)遇到需要根據(jù)不同條件選擇不同操作的情況,或者經(jīng)常會(huì)遇到需要重復(fù)處理相同或相似操作的情況。Python提供了判斷和循環(huán)語(yǔ)句用于解決這些問(wèn)題。本章首先介紹判斷語(yǔ)句,包括簡(jiǎn)單的if語(yǔ)句、if-else語(yǔ)句、if-elif-else語(yǔ)句和嵌套的if語(yǔ)句,然后介紹while循環(huán)和for循環(huán)兩種循環(huán)語(yǔ)句,以及跳出循環(huán)語(yǔ)句的方法,最后通過(guò)兩個(gè)典型案例的分析和實(shí)現(xiàn),讓讀者進(jìn)一步掌握判斷語(yǔ)句和循環(huán)語(yǔ)句的使用方法。第3章判斷和循環(huán)語(yǔ)句學(xué)習(xí)目標(biāo)掌握簡(jiǎn)單的if語(yǔ)句、if-else語(yǔ)句、if-elif-else語(yǔ)句和嵌套的if語(yǔ)句的使用方法掌握while循環(huán)和for循環(huán)語(yǔ)句的使用方法掌握break和continue語(yǔ)句的使用方法掌握選擇結(jié)構(gòu)程序設(shè)計(jì)和循環(huán)結(jié)構(gòu)程序設(shè)計(jì)的編程思路判斷語(yǔ)句3.1循環(huán)語(yǔ)句3.2典型案例3.33.1判斷語(yǔ)句3.1.2if-else語(yǔ)句3.1.1簡(jiǎn)單的if語(yǔ)句3.1.3if-elif-else語(yǔ)句3.1.4嵌套的if語(yǔ)句if語(yǔ)句允許程序通過(guò)判斷條件是否成立而選擇是否執(zhí)行指定的語(yǔ)句。if判斷條件:
語(yǔ)句塊例如:age=20 #創(chuàng)立變量age代表年齡,賦值為20ifage>=18: #判斷變量age的值是否大于等于18print("已成年") #輸出“已成年〞if判斷條件:
語(yǔ)句塊1else:
語(yǔ)句塊2if語(yǔ)句只允許在條件為真時(shí)指定要執(zhí)行的語(yǔ)句,而if-else語(yǔ)句還可在條件為假時(shí)指定要執(zhí)行的語(yǔ)句。例:編寫(xiě)程序,要求輸入年齡,判斷該學(xué)生是否成年〔大于等于18歲〕,如未成年,計(jì)算還需要幾年能夠成年。age=int(input("請(qǐng)輸入學(xué)生的年齡:")) #輸入變量age的值并轉(zhuǎn)換為整型ifage>=18: #判斷age是否大于等于18print("已成年") #如果是,輸出“已成年〞else: #如果不是print("未成年") #輸出“未成年〞print("還差",18-age,"年成年") #計(jì)算還差幾年成年并輸出程序運(yùn)行效果例:編寫(xiě)程序,要求輸入三角形的三條邊,計(jì)算三角形的面積并輸出。importmath #導(dǎo)入math模塊a=int(input("請(qǐng)輸入三角形的第一條邊:")) #輸入第一條邊并將其轉(zhuǎn)換為整型b=int(input("請(qǐng)輸入三角形的第二條邊:")) #輸入第二條邊并將其轉(zhuǎn)換為整型c=int(input("請(qǐng)輸入三角形的第三條邊:")) #輸入第三條邊并將其轉(zhuǎn)換為整型ifa>0andb>0andc>0anda+b>canda+c>bandb+c>a:#如果滿(mǎn)足構(gòu)成三角形條件
s=1/2*(a+b+c) #計(jì)算sarea=math.sqrt(s*(s-a)*(s-b)*(s-c)) #調(diào)用sqrt函數(shù)計(jì)算面積
print("此三角形面積為:",area) #輸出三角形面積else: #如不滿(mǎn)足條件
print("輸入的三條邊不能構(gòu)成三角形"); #輸出提示信息程序運(yùn)行效果if判斷條件1:
語(yǔ)句塊1elif判斷條件2:
語(yǔ)句塊2…elif判斷條件n:
語(yǔ)句塊nelse:
語(yǔ)句塊n+1程序運(yùn)行效果編程時(shí)常常需要判定一系列的條件,一旦其中某一個(gè)條件為真就立刻停止。例:學(xué)生成績(jī)可分為百分制和五級(jí)制,將輸入的百分制成績(jī)score,轉(zhuǎn)換成相應(yīng)的五級(jí)制成績(jī)后輸出。百分制五級(jí)制百分制五級(jí)制90≤score≤100優(yōu)60≤score<70及格80≤score<90良0≤score<60不及格70≤score<80中score>100或score<0無(wú)意義score=int(input("請(qǐng)輸入百分制成績(jī):"))#輸入分?jǐn)?shù)score的值并將其轉(zhuǎn)化為整數(shù)ifscore>100orscore<0: #當(dāng)分值不合理時(shí)顯示出錯(cuò)信息 print("輸入數(shù)據(jù)無(wú)意義")elifscore>=90: #當(dāng)成績(jī)大于等于90小于等于100時(shí),輸出“優(yōu)〞 print("優(yōu)")elifscore>=80: #當(dāng)成績(jī)大于等于80小于90時(shí),輸出“良〞 print("良")elifscore>=70: #當(dāng)成績(jī)大于等于70小于80時(shí),輸出“中〞 print("中")elifscore>=60: #當(dāng)成績(jī)大于等于60小于70時(shí),輸出“及格〞 print("及格")else: #以上條件都不滿(mǎn)足 print("不及格") #輸出不及格程序運(yùn)行效果在if語(yǔ)句中又包含一個(gè)或多個(gè)if語(yǔ)句時(shí),稱(chēng)為if語(yǔ)句的嵌套。if判斷條件1: if判斷條件2:
語(yǔ)句塊1 else:
語(yǔ)句塊2else: if判斷條件3:
語(yǔ)句塊3 else:
語(yǔ)句塊4內(nèi)嵌if內(nèi)嵌if
提示內(nèi)嵌if可以是簡(jiǎn)單的if語(yǔ)句,也可以是if-else語(yǔ)句,還可以是if-elif-else語(yǔ)句。一定要注意if嵌套語(yǔ)句的逐層縮進(jìn),保持同級(jí)縮進(jìn)相同。例:編寫(xiě)程序,實(shí)現(xiàn)輸入三個(gè)整數(shù),輸出最大值。a=int(input("請(qǐng)輸入a的值:")) #輸入a的值并轉(zhuǎn)換為整數(shù)b=int(input("請(qǐng)輸入b的值:")) #輸入b的值并轉(zhuǎn)換為整數(shù)c=int(input("請(qǐng)輸入c的值:")) #輸入c的值并轉(zhuǎn)換為整數(shù)ifa>b: #a>bifa>c: #a>b并且a>c,最大值為amax=a else: #a>b并且c>a,最大值為cmax=celse: #a<bifb>c: #b>a并且b>c,最大值為bmax=belse: #b>a并且c>b,最大值為cmax=cprint("max=",max) #輸出最大值max程序運(yùn)行效果3.2循環(huán)語(yǔ)句3.2.2for循環(huán)語(yǔ)句3.2.1while循環(huán)語(yǔ)句3.2.3循環(huán)嵌套3.2.4break和continue語(yǔ)句while循環(huán)語(yǔ)句的根本格式如下:while判斷條件:
語(yǔ)句塊 #循環(huán)體
提示while循環(huán)語(yǔ)句是“先判斷,后執(zhí)行〞。如果剛進(jìn)入循環(huán)時(shí)條件就不滿(mǎn)足,那么循環(huán)體一次也不執(zhí)行。還需要注意的是,一定要有語(yǔ)句修改判斷條件,使其有為假的時(shí)候,否那么將出現(xiàn)“死循環(huán)〞。i=1 #創(chuàng)立變量i,賦值為1S=0 #創(chuàng)立變量S,賦值為0whilei<=100: #循環(huán),當(dāng)i>100時(shí)結(jié)束 S+=i #求和,將結(jié)果放入S中 i+=1 #變量i加1print("S=1+2+3+…+100=",S) #輸出S的值例:編寫(xiě)程序,求S=1+2+3+…+100的值。程序運(yùn)行效果
注意〔1〕變量初始化描述要完整、準(zhǔn)確?!?〕在循環(huán)體中應(yīng)有使循環(huán)趨向于結(jié)束的語(yǔ)句。1.for循環(huán)語(yǔ)句的語(yǔ)法結(jié)構(gòu)根本格式:for變量in序列:
語(yǔ)句塊例如:forxin"python":print(x)
提示Python中的for循環(huán)常用于遍歷列表、元組、字符串以及字典等序列中的元素。2.for循環(huán)語(yǔ)句與range()函數(shù)range([start,]stop[,step])for循環(huán)語(yǔ)句經(jīng)常與range()函數(shù)一起使用,range()函數(shù)是Python的內(nèi)置函數(shù),可創(chuàng)立一個(gè)整數(shù)列表。range()函數(shù)的語(yǔ)法是:計(jì)數(shù)從start開(kāi)始,默認(rèn)是從0開(kāi)始。計(jì)數(shù)到stop結(jié)束,但不包括stop。步長(zhǎng),默認(rèn)為1。例如:range(5)等價(jià)于range(0,5)range(0,5)是[0,1,2,3,4]range(0,5)等價(jià)于range(0,5,1)例:用for語(yǔ)句求S=1+2+3+…+100的值。S=0 #創(chuàng)立變量S,賦值為0foriinrange(1,101): #循環(huán)變量i從1循環(huán)到100 S+=i #求和,將結(jié)果放入S中print("S=1+2+3+…+100=",S) #輸出S的值程序運(yùn)行效果一個(gè)循環(huán)語(yǔ)句的循環(huán)體內(nèi)包含另一個(gè)完整的循環(huán)結(jié)構(gòu),稱(chēng)為循環(huán)的嵌套。嵌在循環(huán)體內(nèi)的循環(huán)稱(chēng)為內(nèi)循環(huán)。嵌有內(nèi)循環(huán)的循環(huán)稱(chēng)為外循環(huán)。內(nèi)嵌的循環(huán)中還可以嵌套循環(huán),這就是多重循環(huán)。兩種循環(huán)語(yǔ)句while語(yǔ)句和for語(yǔ)句可以互相嵌套,自由組合。外層循環(huán)體中可以包含一個(gè)或多個(gè)內(nèi)層循環(huán)結(jié)構(gòu)。
注意各循環(huán)必須完整包含,相互之間不允許有交叉現(xiàn)象。例:編寫(xiě)一個(gè)程序,輸出以下乘法表。forxinrange(1,10): #循環(huán)變量x從1循環(huán)到9 foryinrange(1,x+1): #循環(huán)變量y從1循環(huán)到x+1 print(y,"*",x,"=",x*y,"",end="") #輸出乘法表達(dá)式
print("") #輸出空字符串,作用是為了換行程序運(yùn)行效果1.break語(yǔ)句我們可以使用break語(yǔ)句跳出循環(huán)體,而去執(zhí)行循環(huán)下面的語(yǔ)句。在循環(huán)結(jié)構(gòu)中,break語(yǔ)句通常與if語(yǔ)句一起使用,以便在滿(mǎn)足條件時(shí)跳出循環(huán)。例:計(jì)算滿(mǎn)足條件的最大整數(shù)n,使得1+2+3+…+n<=10000。n=1 #創(chuàng)立變量n,賦值為1S=0 #創(chuàng)立變量S,賦值為0whileTrue: #循環(huán) S+=n #求和,將結(jié)果放入S中 ifS>10000: #當(dāng)S>10000時(shí) break #跳出循環(huán) n+=1 #變量n加1print("最大整數(shù)n為",n-1,",使得1+2+3+…+n<=10000。") #輸出n-1的值程序運(yùn)行效果2.continue語(yǔ)句有時(shí)并不希望終止整個(gè)循環(huán)的操作,而只希望提前結(jié)束本次循環(huán),接著執(zhí)行下次循環(huán),這時(shí)可以用continue語(yǔ)句。與break語(yǔ)句不同,continue語(yǔ)句的作用是結(jié)束本次循環(huán),即跳過(guò)循環(huán)體中continue語(yǔ)句后面的語(yǔ)句,開(kāi)始下一次循環(huán)。例:輸出1~20之間所有的奇數(shù)。forninrange(1,21): #循環(huán),n的取值為1到20 ifn%2==0: #判斷n是否為偶數(shù)
continue #當(dāng)n為偶數(shù)時(shí)跳出本次循環(huán)
else: #當(dāng)n為奇數(shù)時(shí)輸出n的值
print(n)程序運(yùn)行效果3.3典型案例例:編寫(xiě)程序,模仿猜拳游戲,要求輸入兩個(gè)用戶(hù)的不同手型,判斷輸贏后輸出。player1=int(input("請(qǐng)用戶(hù)1輸入:0(剪刀)1(石頭)2(布):")#獲取用戶(hù)1輸入的信息并賦值player2=int(input("請(qǐng)用戶(hù)2輸入:0(剪刀)1(石頭)2(布):"))#獲取用戶(hù)2輸入的信息并賦值ifplayer1<0orplayer1>2orplayer2<0orplayer2>2: #輸入了游戲規(guī)那么以外的數(shù)字 print("請(qǐng)遵守游戲規(guī)那么") #輸出“請(qǐng)遵守游戲規(guī)那么〞else: #輸入正確if((player1==0)and(player2==2))or((player1==1)and(player2==0))or((player1==2)and(player2==1)): #用戶(hù)1所有能獲勝的判斷條件print("用戶(hù)1獲得勝利") #輸出“用戶(hù)1獲得勝利〞elifplayer1==player2: #用戶(hù)1輸入與用戶(hù)2相同
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年酒店客房窗簾換季更新及維護(hù)保養(yǎng)合同3篇
- 二零二五年度勞動(dòng)合同主體變更及員工健康體檢協(xié)議3篇
- 2024年車(chē)位代管協(xié)議書(shū)
- 云南德宏塑木平臺(tái)施工方案
- 安徽福建中考數(shù)學(xué)試卷
- 2024年企業(yè)知識(shí)產(chǎn)權(quán)保護(hù)培訓(xùn)項(xiàng)目委托合同范本3篇
- 二零二五年床墊生產(chǎn)許可證及質(zhì)量檢測(cè)報(bào)告合同3篇
- 初三紅橋三模數(shù)學(xué)試卷
- 比較好的高一數(shù)學(xué)試卷
- 2025版新型卷閘門(mén)研發(fā)與應(yīng)用推廣合作協(xié)議2篇
- 2024年大學(xué)試題(管理類(lèi))-行政管理學(xué)筆試歷年真題薈萃含答案
- 高尿酸血癥的預(yù)防與控制策略研究
- 2023-2024學(xué)年湖南省常德市武陵區(qū)湘少版(三起)六年級(jí)上冊(cè)期末質(zhì)量檢測(cè)英語(yǔ)試卷(無(wú)答案)
- 醫(yī)療機(jī)構(gòu)規(guī)章制度目錄
- 中國(guó)史碩士研究生培養(yǎng)方案
- 成人自考市場(chǎng)營(yíng)銷(xiāo)策劃
- 腸梗阻小講課
- 1-先心病房間隔缺損封堵術(shù)護(hù)理教學(xué)查房
- 電子表格表格會(huì)計(jì)記賬憑證模板
- 2021年深圳亞迪學(xué)校小升初面試數(shù)學(xué)模擬題及答案
- 抽沙船施工方案
評(píng)論
0/150
提交評(píng)論