![Python語言程序設(shè)計(jì)第五章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)課件_第1頁](http://file4.renrendoc.com/view/1fe4af0ca3bbb6a01232ca0e58c136cb/1fe4af0ca3bbb6a01232ca0e58c136cb1.gif)
![Python語言程序設(shè)計(jì)第五章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)課件_第2頁](http://file4.renrendoc.com/view/1fe4af0ca3bbb6a01232ca0e58c136cb/1fe4af0ca3bbb6a01232ca0e58c136cb2.gif)
![Python語言程序設(shè)計(jì)第五章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)課件_第3頁](http://file4.renrendoc.com/view/1fe4af0ca3bbb6a01232ca0e58c136cb/1fe4af0ca3bbb6a01232ca0e58c136cb3.gif)
![Python語言程序設(shè)計(jì)第五章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)課件_第4頁](http://file4.renrendoc.com/view/1fe4af0ca3bbb6a01232ca0e58c136cb/1fe4af0ca3bbb6a01232ca0e58c136cb4.gif)
![Python語言程序設(shè)計(jì)第五章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)課件_第5頁](http://file4.renrendoc.com/view/1fe4af0ca3bbb6a01232ca0e58c136cb/1fe4af0ca3bbb6a01232ca0e58c136cb5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、Python語言程序設(shè)計(jì)第5章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)5.1 while語句(當(dāng)型循環(huán))5.2 for語句結(jié)構(gòu)5.3循環(huán)的嵌套5.4 循環(huán)控制語句5.5 循環(huán)結(jié)構(gòu)程序舉例循環(huán)結(jié)構(gòu)的基本類型 當(dāng)型循環(huán)while, forexpAFT循環(huán)結(jié)構(gòu)程序設(shè)計(jì)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)的應(yīng)用場合:當(dāng)某個條件滿足時,需要多次反復(fù)進(jìn)行同樣工作。例如:1、求實(shí)數(shù)x的10次方2、求數(shù)列1,2,i, 的前n項(xiàng)和3、判斷一個整數(shù)是否是素數(shù)5.1 while語句(當(dāng)型循環(huán))特點(diǎn):先判斷,再執(zhí)行while 語句的語法格式:注意: 循環(huán)體可能一次也不執(zhí)行。 循環(huán)體可為任意類型語句。 退出while循環(huán)的情況: exp不成立
2、循環(huán)體內(nèi)遇break, return, exit等。exp循環(huán)體FTwhile exp: 循環(huán)體在while語句中使用else子句Python可以在循環(huán)語句中使用else子句,即構(gòu)成了while.else循環(huán)結(jié)構(gòu)。while exp: 循環(huán)體else: 語句while.else循環(huán)結(jié)構(gòu)例如:count=int(input()while count5:print(count,”is less than 5”) count=count+1else:print(count,”is not less than 5”)程序運(yùn)行結(jié)果88 is not less than 5例:求1)問題分析: sum,n
3、=0,1n=100sum=sum+n n=n+1YN輸出sum結(jié)束開始sum = 1+2+100 100個數(shù) 循環(huán)語句:循環(huán)變量初始化:循環(huán)控制條件:循環(huán)體:循環(huán)變量的修改:n1n=100sum+=nn=n+1例:求 sum,n=0,1 while n= 0sum=sum+x YN輸出sum結(jié)束開始 循環(huán)語句四要素:循環(huán)變量初始化:循環(huán)控制條件:循環(huán)體:循環(huán)變量的修改: 輸入x的值x=0 sum=sum+x 輸入x的值輸入x 例: 從鍵盤輸入若干個數(shù), 求所有正數(shù)之和。當(dāng)輸入0或負(fù)數(shù)時,程序結(jié)束sum=0 x=input(“請輸入正整數(shù):)while x=0:sum=sum+xx=input(
4、“請輸入正整數(shù):) printf(sum=, sum)例題:輸入一個正整數(shù)x,如果x滿足0 x=0 and x0: i=i/10 n=n+1 a=x%10 print(“%d是%d位數(shù),它的個位上數(shù)字是”%(x, n,a) else: print(“輸入錯誤!”)5.1 while語句說明 while 語句之前必須預(yù)先設(shè)置判斷的初始條件 防止“死循環(huán)”的發(fā)生 在循環(huán)體中必須有使循環(huán)趨向結(jié)束的操作,即 在循環(huán)體中要有能讓邏輯表達(dá)式值改變的語句 正確使用縮進(jìn) 當(dāng)循環(huán)體中含多條語句時,需用縮進(jìn)這些多條語句,而且縮進(jìn)一定要符合邏輯關(guān)系 在循環(huán)體中,語句的先后位置必須符合邏輯 否則會影響運(yùn)算結(jié)果。5.2
5、 for語句 結(jié)構(gòu)1. for語句一般形式: for 目標(biāo)變量 in 序列對象: 循環(huán)體語句說明: for語句的首行定義了目標(biāo)變量和遍歷的序列對象,后面是需要重復(fù)執(zhí)行的語句塊。語句塊中的語句要向右縮進(jìn),且縮進(jìn)量要一致。注意:(1)for語句是通過遍歷任意序列的元素來建立循環(huán)的。(2)for 語句也支持一個可選的else塊,一般格式如下:for 目標(biāo)變量 in序列對象: 語句塊else: 語句2. range 對象在for循環(huán)中的應(yīng)用 range函數(shù)返回的是可迭代對象,range()函數(shù)的一般格式為: range(start,end,step) rang ()函數(shù)共有三個參數(shù),start和ste
6、p是可選的,start表示開始,默認(rèn)值為0,end表示結(jié)束,step表示每次跳躍的間距,默認(rèn)值為1。函數(shù)的功能是從一個start參數(shù)的值開始,到end參數(shù)的值結(jié)束的數(shù)字序列。傳遞一個參數(shù)的range()函數(shù): for i in range(5):print(i)傳遞兩個參數(shù)的range()函數(shù): for i in range(2,4):print(i)傳遞三個參數(shù)的range()函數(shù): for i in range(2,20,3):print(i)range()例 用for循環(huán)求sum=0for i in range(101):sum=sum+iprint(“1+2+3+.+100”,sum)
7、sum=0for i in rang(101):sum=sum+i輸出summ=int(input(“請輸入要判斷的正整數(shù)m”))flag=1for i in range(2,m):if m%i=0:flag=0i=m if flag=1: print(“%d 是素數(shù)”%m)else: print(“%d不是素數(shù)”%m) 例 判斷m是否為素數(shù)。例:已知四位數(shù)3025具有特殊性質(zhì):它的前兩位數(shù)字30與后兩位數(shù)字25之和是55,而55的平方正好等于其本身3025。編程列舉出具有該性質(zhì)的四位數(shù)。print(“滿足條件的四位數(shù)分別是:”) for i in range(1000,10000): a=i
8、/100b=i%100if (a+b)* *2=i:print(i)print(“滿足條件的數(shù)分別是:”)count=0for i in range(1,100):if i%7=0 and i%11!=0 or i%11=0 and i%7!=0: print(i ,end=” ”) count=coun+1 if count%10=0:print(“ ”) 例 求出1到100能被7或11整除但不能被7和11同時整除的所有整數(shù)并將它們輸出。每行10個。5.3 循環(huán)嵌套 循環(huán)的嵌套,又稱多層循環(huán),應(yīng)用于多個變量同時變化的情況。說明:1. 外層循環(huán)可包含兩個以上內(nèi)循環(huán) 2. 嵌套的循環(huán)的執(zhí)行流程5
9、.3 循環(huán)嵌套 注意:while、for循環(huán)語句可以并列,也可以相互嵌套,但要層次清楚,不能出現(xiàn)交叉多重循環(huán)程序執(zhí)行時,外層循環(huán)每執(zhí)行一次,內(nèi)層循環(huán)都需要循環(huán)執(zhí)行多次。 外循環(huán)執(zhí)行了6次 內(nèi)循環(huán)執(zhí)行10次 循環(huán)正常結(jié)束時, 內(nèi)循環(huán)執(zhí)行了 106=60次for i in range (6): for j in range (10): 5.3 循環(huán)嵌套 循環(huán)語句while和for可以相互嵌套。在使用循環(huán)嵌套時,應(yīng)注意以下幾個問題:(1)外層循環(huán)和內(nèi)層循環(huán)控制變量不能同名,以免造成混亂。(2)循環(huán)嵌套的縮進(jìn)在邏輯上一定要注意,以保證邏輯上的重要性。(3)循環(huán)嵌套不能交叉,即在一個循環(huán)體內(nèi)必須完整地包
10、含另一個循環(huán),如圖5.10所示的循環(huán)嵌套都是合法的嵌套形式。循環(huán)嵌套在使用中的重點(diǎn)內(nèi)容能夠正確判斷內(nèi)層循環(huán)體的范圍能夠正確判斷內(nèi)層循環(huán)體的執(zhí)行次數(shù)注意內(nèi)層循環(huán)的初值設(shè)定能正確處理內(nèi)層循環(huán)與外層循環(huán)變量的關(guān)系5.3 循環(huán)嵌套 例:輸出九九表,輸出格式如下:1*1=11*2=22*2=4 1*3=32*3=63*3=91*4=42*4=83*4=124*4=16 1*5=52*5=10 3*5=154*5=205*5=251*6=62*6=123*6=184*6=245*6=306*6=361*7=72*7=14 3*7=214*7=285*7=356*7=427*7=491*8=82*8=163
11、*8=244*8=325*8=406*8=487*8=568*8=641*9=92*9=183*9=274*9=365*9=456*9=547*9=63 8*9=729*9=81for i in range (1,10,1):for j in range(1,i+1,1): print(“%d*%d=%2d ”%(j,i,i*j),end=” ”)print(“”)例:找出所有的三位數(shù),要求它的各位數(shù)字的立方和正好等于這個三位數(shù)。例如:153=13+53+33就是這樣的數(shù)。for i in range(1,10): for j in range(0,10): for k in range(0,
12、10): if i*3+j*3+k*3=i*100+j*10+k: print(%d%d%d%(i,j,k)程序運(yùn)行結(jié)果:153370371407例:求100200之間的全部素數(shù)。print(100200之間的素數(shù)有:)for m in range(100,200): flag=1 for i in range(2,m): if m%i=0: flag=0 i=m if flag=1: print(m,end= ) 5.4 循環(huán)控制語句 有時候我們需要在循環(huán)體中提前跳出循環(huán),或者在某種條件滿足時,不執(zhí)行循環(huán)體中的某些語句而立即從頭開始新的一輪循環(huán),這時就要用到循環(huán)控制語句break、conti
13、nue和pass語句。一般格式break功能 break語句用在循環(huán)體內(nèi),迫使所在循環(huán)立即終止,即跳出所在循環(huán)體,繼續(xù)執(zhí)行循環(huán)結(jié)構(gòu)后面的語句。(1) break語句 break expN Y分析:找出m與n中較小的一個,則最大公約數(shù)必在1與較小整數(shù)的范圍內(nèi)。使用for語句,循環(huán)變量i從較小整數(shù)變化到1。一旦循環(huán)控制變量i同時能被m與n整除,則i就是最大公約數(shù),然后使用break語句強(qiáng)制退出循環(huán)。求兩個整數(shù)m與n的最大公約數(shù)。m,n=eval(input(請輸入兩個整數(shù):)if m100:break else:y+=x print(y=,y)程序運(yùn)行結(jié)果:y= 2500(3)pass語句pass
14、語句是一個空語句,它不做任何操作,代表一個空操作,在特別的時候用來保證格式或是語義的完整性。例如下面的循環(huán)語句:for i in range(5): pass該語句的確會循環(huán)5次,但是除了循環(huán)本身之外,它什么也沒做。例:pass語句應(yīng)用:逐個輸出“Python”字符串中的字符。for letter in Python: if letter = o: pass print(This is pass block) print(Current Letter :, letter)print(End!)程序運(yùn)行結(jié)果:Current Letter : PCurrent Letter : yCurrent
15、Letter : tCurrent Letter : hThis is pass blockCurrent Letter : oCurrent Letter : nEnd!5.5 循環(huán)結(jié)構(gòu)程序舉例 例:利用下面的公式求的近似值,要求累加到最后一項(xiàng)小于10-6為止。程序如下:import maths=1n=1.0t=1.0pi=0while math.fabs(t)=1e-6: pi=pi+t n=n+2 s=-s t=s/npi=pi*4print(PI=%f%pi)程序運(yùn)行結(jié)果:PI=3.141591例:“百錢百雞”問題。公雞5文錢一只,母雞3文錢一只,小雞3只一文錢,用100文錢買一百只雞
16、,其中公雞、母雞、小雞都必須要有,問公雞,母雞,小雞要買多少只剛好湊足100文錢?分析:顯然這是一個組合問題,也可以看作是解不定方程的問題,采用列舉的方法實(shí)現(xiàn)。令i、j、k分別表示公雞、母雞和小雞的數(shù)目。方法一令i、j、k的列舉范圍分別為:i:120(公雞最多能買20只)j:133(母雞最多能買33只)k:1100(小雞最多能買100只)可以采用三重循環(huán)逐個搜索。程序如下:for i in range(1,21): for j in range(1,34): for k in range(1,101): if i+j+k=100 and i*5+j*3+k/3=100: print(公雞:%d
17、只,母雞:%d只,小雞:%d只%(i,j,k)程序運(yùn)行結(jié)果:公雞:4只,母雞:18只,小雞:78只公雞:8只,母雞:11只,小雞:81只公雞:12只,母雞:4只,小雞:84只在程序中,循環(huán)體被執(zhí)行了2033100=66000次。方法二令i、j、k的列舉范圍分別為(保證每種雞至少買一只):i:118(公雞最多能買18只)j:131(母雞最多能買31只)k:100-i-k(當(dāng)公雞和小雞數(shù)量確定后,小雞的數(shù)量可計(jì)算得到)可以采用兩重循環(huán)逐個搜索。程序如下:for i in range(1,19): for j in range(1,32): k=100-i-j if i+j+k=100 and i*5+j*3+k/3=100: print(公雞:%d只,母雞:%d只,小雞:%d只%(i,j,k)在程序中,循環(huán)體被執(zhí)行了1881=558次。方法三從題意可得到下列方程組:由方程組可得到式子7i+4j=100。由于i和j至少為1,因此可知i最大為13,j最大為23。方法二的兩重循環(huán)可改進(jìn)為以下程序: for i in range(1,14): for j in range(1,24): k=100-i-j if i+j+k=100 and i*5+j*3+k/3=100: print
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 物業(yè)管理委托合同
- 家庭室內(nèi)外裝修合同書
- 多模式跨境電子商務(wù)解決方案策劃與設(shè)計(jì)全案指南
- 研發(fā)項(xiàng)目管理作業(yè)指導(dǎo)書
- 生物技術(shù)與實(shí)驗(yàn)室技能作業(yè)指導(dǎo)書
- 電線電纜購銷合同
- 2025年天津年貨運(yùn)從業(yè)資格證考試從業(yè)從業(yè)資格資格題庫及答案
- 2025年烏魯木齊貨運(yùn)從業(yè)資格考試題目大全
- 小學(xué)青島版一年級數(shù)學(xué)上冊口算練習(xí)題總匯
- 2025年東莞貨車從業(yè)資格證考試試題
- 2024年國家電網(wǎng)招聘之通信類題庫附參考答案(考試直接用)
- ## 外事領(lǐng)域意識形態(tài)工作預(yù)案
- CJJ 169-2012城鎮(zhèn)道路路面設(shè)計(jì)規(guī)范
- 第八單元金屬和金屬材料單元復(fù)習(xí)題-2023-2024學(xué)年九年級化學(xué)人教版下冊
- 鋼鐵是怎樣煉成的保爾成長史
- 精神科護(hù)理技能5.3出走行為的防范與護(hù)理
- 煤礦機(jī)電運(yùn)輸培訓(xùn)課件
- 采購管理學(xué)教學(xué)課件
- 《供應(yīng)商質(zhì)量會議》課件
- 江蘇省科技企業(yè)孵化器孵化能力評價研究的中期報告
- 供應(yīng)商審核培訓(xùn)教程
評論
0/150
提交評論