《Python編程案例教程》課件-第3章-判斷和循環(huán)語句_第1頁
《Python編程案例教程》課件-第3章-判斷和循環(huán)語句_第2頁
《Python編程案例教程》課件-第3章-判斷和循環(huán)語句_第3頁
《Python編程案例教程》課件-第3章-判斷和循環(huán)語句_第4頁
《Python編程案例教程》課件-第3章-判斷和循環(huán)語句_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Python編程案例教程本章導(dǎo)讀在解決實際問題時,我們經(jīng)常會遇到需要根據(jù)不同條件選擇不同操作的情況,或者經(jīng)常會遇到需要重復(fù)處理相同或相似操作的情況。Python提供了判斷和循環(huán)語句用于解決這些問題。本章首先介紹判斷語句,包括簡單的if語句、if-else語句、if-elif-else語句和嵌套的if語句,然后介紹while循環(huán)和for循環(huán)兩種循環(huán)語句,以及跳出循環(huán)語句的方法,最后通過兩個典型案例的分析和實現(xiàn),讓讀者進(jìn)一步掌握判斷語句和循環(huán)語句的使用方法。第3章判斷和循環(huán)語句學(xué)習(xí)目標(biāo)掌握簡單的if語句、if-else語句、if-elif-else語句和嵌套的if語句的使用方法掌握while循環(huán)和for循環(huán)語句的使用方法掌握break和continue語句的使用方法掌握選擇結(jié)構(gòu)程序設(shè)計和循環(huán)結(jié)構(gòu)程序設(shè)計的編程思路判斷語句3.1循環(huán)語句3.2典型案例3.33.1判斷語句3.1.2if-else語句3.1.1簡單的if語句3.1.3if-elif-else語句3.1.4嵌套的if語句if語句允許程序通過判斷條件是否成立而選擇是否執(zhí)行指定的語句。if判斷條件:

語句塊例如:age=20 #創(chuàng)立變量age代表年齡,賦值為20ifage>=18: #判斷變量age的值是否大于等于18print("已成年") #輸出“已成年〞if判斷條件:

語句塊1else:

語句塊2if語句只允許在條件為真時指定要執(zhí)行的語句,而if-else語句還可在條件為假時指定要執(zhí)行的語句。例:編寫程序,要求輸入年齡,判斷該學(xué)生是否成年〔大于等于18歲〕,如未成年,計算還需要幾年能夠成年。age=int(input("請輸入學(xué)生的年齡:")) #輸入變量age的值并轉(zhuǎn)換為整型ifage>=18: #判斷age是否大于等于18print("已成年") #如果是,輸出“已成年〞else: #如果不是print("未成年") #輸出“未成年〞print("還差",18-age,"年成年") #計算還差幾年成年并輸出程序運行效果例:編寫程序,要求輸入三角形的三條邊,計算三角形的面積并輸出。importmath #導(dǎo)入math模塊a=int(input("請輸入三角形的第一條邊:")) #輸入第一條邊并將其轉(zhuǎn)換為整型b=int(input("請輸入三角形的第二條邊:")) #輸入第二條邊并將其轉(zhuǎn)換為整型c=int(input("請輸入三角形的第三條邊:")) #輸入第三條邊并將其轉(zhuǎn)換為整型ifa>0andb>0andc>0anda+b>canda+c>bandb+c>a:#如果滿足構(gòu)成三角形條件

s=1/2*(a+b+c) #計算sarea=math.sqrt(s*(s-a)*(s-b)*(s-c)) #調(diào)用sqrt函數(shù)計算面積

print("此三角形面積為:",area) #輸出三角形面積else: #如不滿足條件

print("輸入的三條邊不能構(gòu)成三角形"); #輸出提示信息程序運行效果if判斷條件1:

語句塊1elif判斷條件2:

語句塊2…elif判斷條件n:

語句塊nelse:

語句塊n+1程序運行效果編程時常常需要判定一系列的條件,一旦其中某一個條件為真就立刻停止。例:學(xué)生成績可分為百分制和五級制,將輸入的百分制成績score,轉(zhuǎn)換成相應(yīng)的五級制成績后輸出。百分制五級制百分制五級制90≤score≤100優(yōu)60≤score<70及格80≤score<90良0≤score<60不及格70≤score<80中score>100或score<0無意義score=int(input("請輸入百分制成績:"))#輸入分?jǐn)?shù)score的值并將其轉(zhuǎn)化為整數(shù)ifscore>100orscore<0: #當(dāng)分值不合理時顯示出錯信息 print("輸入數(shù)據(jù)無意義")elifscore>=90: #當(dāng)成績大于等于90小于等于100時,輸出“優(yōu)〞 print("優(yōu)")elifscore>=80: #當(dāng)成績大于等于80小于90時,輸出“良〞 print("良")elifscore>=70: #當(dāng)成績大于等于70小于80時,輸出“中〞 print("中")elifscore>=60: #當(dāng)成績大于等于60小于70時,輸出“及格〞 print("及格")else: #以上條件都不滿足 print("不及格") #輸出不及格程序運行效果在if語句中又包含一個或多個if語句時,稱為if語句的嵌套。if判斷條件1: if判斷條件2:

語句塊1 else:

語句塊2else: if判斷條件3:

語句塊3 else:

語句塊4內(nèi)嵌if內(nèi)嵌if

提示內(nèi)嵌if可以是簡單的if語句,也可以是if-else語句,還可以是if-elif-else語句。一定要注意if嵌套語句的逐層縮進(jìn),保持同級縮進(jìn)相同。例:編寫程序,實現(xiàn)輸入三個整數(shù),輸出最大值。a=int(input("請輸入a的值:")) #輸入a的值并轉(zhuǎn)換為整數(shù)b=int(input("請輸入b的值:")) #輸入b的值并轉(zhuǎn)換為整數(shù)c=int(input("請輸入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程序運行效果3.2循環(huán)語句3.2.2for循環(huán)語句3.2.1while循環(huán)語句3.2.3循環(huán)嵌套3.2.4break和continue語句while循環(huán)語句的根本格式如下:while判斷條件:

語句塊 #循環(huán)體

提示while循環(huán)語句是“先判斷,后執(zhí)行〞。如果剛進(jìn)入循環(huán)時條件就不滿足,那么循環(huán)體一次也不執(zhí)行。還需要注意的是,一定要有語句修改判斷條件,使其有為假的時候,否那么將出現(xiàn)“死循環(huán)〞。i=1 #創(chuàng)立變量i,賦值為1S=0 #創(chuàng)立變量S,賦值為0whilei<=100: #循環(huán),當(dāng)i>100時結(jié)束 S+=i #求和,將結(jié)果放入S中 i+=1 #變量i加1print("S=1+2+3+…+100=",S) #輸出S的值例:編寫程序,求S=1+2+3+…+100的值。程序運行效果

注意〔1〕變量初始化描述要完整、準(zhǔn)確?!?〕在循環(huán)體中應(yīng)有使循環(huán)趨向于結(jié)束的語句。1.for循環(huán)語句的語法結(jié)構(gòu)根本格式:for變量in序列:

語句塊例如:forxin"python":print(x)

提示Python中的for循環(huán)常用于遍歷列表、元組、字符串以及字典等序列中的元素。2.for循環(huán)語句與range()函數(shù)range([start,]stop[,step])for循環(huán)語句經(jīng)常與range()函數(shù)一起使用,range()函數(shù)是Python的內(nèi)置函數(shù),可創(chuàng)立一個整數(shù)列表。range()函數(shù)的語法是:計數(shù)從start開始,默認(rèn)是從0開始。計數(shù)到stop結(jié)束,但不包括stop。步長,默認(rèn)為1。例如:range(5)等價于range(0,5)range(0,5)是[0,1,2,3,4]range(0,5)等價于range(0,5,1)例:用for語句求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的值程序運行效果一個循環(huán)語句的循環(huán)體內(nèi)包含另一個完整的循環(huán)結(jié)構(gòu),稱為循環(huán)的嵌套。嵌在循環(huán)體內(nèi)的循環(huán)稱為內(nèi)循環(huán)。嵌有內(nèi)循環(huán)的循環(huán)稱為外循環(huán)。內(nèi)嵌的循環(huán)中還可以嵌套循環(huán),這就是多重循環(huán)。兩種循環(huán)語句while語句和for語句可以互相嵌套,自由組合。外層循環(huán)體中可以包含一個或多個內(nèi)層循環(huán)結(jié)構(gòu)。

注意各循環(huán)必須完整包含,相互之間不允許有交叉現(xiàn)象。例:編寫一個程序,輸出以下乘法表。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("") #輸出空字符串,作用是為了換行程序運行效果1.break語句我們可以使用break語句跳出循環(huán)體,而去執(zhí)行循環(huán)下面的語句。在循環(huán)結(jié)構(gòu)中,break語句通常與if語句一起使用,以便在滿足條件時跳出循環(huá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時 break #跳出循環(huán) n+=1 #變量n加1print("最大整數(shù)n為",n-1,",使得1+2+3+…+n<=10000。") #輸出n-1的值程序運行效果2.continue語句有時并不希望終止整個循環(huán)的操作,而只希望提前結(jié)束本次循環(huán),接著執(zhí)行下次循環(huán),這時可以用continue語句。與break語句不同,continue語句的作用是結(jié)束本次循環(huán),即跳過循環(huán)體中continue語句后面的語句,開始下一次循環(huán)。例:輸出1~20之間所有的奇數(shù)。forninrange(1,21): #循環(huán),n的取值為1到20 ifn%2==0: #判斷n是否為偶數(shù)

continue #當(dāng)n為偶數(shù)時跳出本次循環(huán)

else: #當(dāng)n為奇數(shù)時輸出n的值

print(n)程序運行效果3.3典型案例例:編寫程序,模仿猜拳游戲,要求輸入兩個用戶的不同手型,判斷輸贏后輸出。player1=int(input("請用戶1輸入:0(剪刀)1(石頭)2(布):")#獲取用戶1輸入的信息并賦值player2=int(input("請用戶2輸入:0(剪刀)1(石頭)2(布):"))#獲取用戶2輸入的信息并賦值ifplayer1<0orplayer1>2orplayer2<0orplayer2>2: #輸入了游戲規(guī)那么以外的數(shù)字 print("請遵守游戲規(guī)那么") #輸出“請遵守游戲規(guī)那么〞else: #輸入正確if((player1==0)and(player2==2))or((player1==1)and(player2==0))or((player1==2)and(player2==1)): #用戶1所有能獲勝的判斷條件print("用戶1獲得勝利") #輸出“用戶1獲得勝利〞elifplayer1==player2: #用戶1輸入與用戶2相同

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論