版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、本章主講,趙家剛,第,4,章,循環(huán)結(jié)構(gòu),程序設(shè)計,2,計算機(jī)編程導(dǎo)論,1-2,Copyright ? SWFU-CISD, 2012. All rights reserved.,4.3.3,while,語句用于無限循環(huán),要點(diǎn):,?,循環(huán)結(jié)構(gòu)理解,?,二重循環(huán)結(jié)構(gòu)理解,?,二重循環(huán)的應(yīng)用,計算機(jī)編程導(dǎo)論,1-3,Copyright ? SWFU-CISD, 2012. All rights reserved.,4.3.3,while,語句用于無限循環(huán),?,當(dāng),while,語句的“表達(dá)式”永遠(yuǎn)不會為布爾假時,,循環(huán)將永遠(yuǎn)不會結(jié)束,形成無限循環(huán),也稱死,循環(huán)。,?,使用,while,語句構(gòu)成無限循環(huán)
2、的格式通常為:,while True:,循環(huán)體,?,可以在循環(huán)體內(nèi)使用,break,語句,強(qiáng)制結(jié)束死循,環(huán)。,計算機(jī)編程導(dǎo)論,1-4,Copyright ? SWFU-CISD, 2012. All rights reserved.,【例,4-5,】使用無限循環(huán)的方法編程實(shí)現(xiàn)例,4-2,。,a = input(,請輸入字符,如果輸入,#,號,則結(jié)束輸入操作,: ),while True:,print(,您輸入的字符是:, a),a = input(,請輸入字符,如果輸,入,#,號則結(jié)束輸入操作,: ),if a = #:,break,程序:,圖,4-7,無限循環(huán)的框圖,開始,結(jié)束,False,
3、True,輸入一個字符,不是字符,#,嗎?,True,輸出該字符,表達(dá)式,恒為真,計算機(jī)編程導(dǎo)論,1-5,Copyright ? SWFU-CISD, 2012. All rights reserved.,【例,4-6,】求以下表達(dá)式的值,其中,n,值從鍵盤輸,入。參考值:當(dāng),n = 11,時,,s = 1.833333,。,n,s,?,?,?,?,?,?,?,?,?,?,?,?,?,?,3,2,1,1,3,2,1,1,2,1,1,1,計算機(jī)編程導(dǎo)論,1-6,Copyright ? SWFU-CISD, 2012. All rights reserved.,【分析】,(,1,)以上問題屬于數(shù)學(xué)
4、中的級數(shù)求和問題,是使用,循環(huán)結(jié)構(gòu)解決的一類常見問題。,(,2,)級數(shù)求和問題編程的重點(diǎn)在于通過觀察表達(dá)式,的規(guī)律,分析每次循環(huán)都要完成的事件。通常將這,些事件進(jìn)行局部分解,稱為“,通式,”。,該題的通式有以下幾個:,(,1,)分母的通式:,(,2,)變量,i,的通式:,(,3,)當(dāng)前項的通式:,(,4,)求和的通式:,mu = mu + i,i = i + 1,t = 1.0 / mu,s = s + t,計算機(jī)編程導(dǎo)論,1-7,Copyright ? SWFU-CISD, 2012. All rights reserved.,i=1,mu = 0,s = 0.0,n = input(,請輸
5、入,n,值,: ) #,或用書上的代碼,while i = n:,#,判斷是否計算到表達(dá)式的最后一項,mu = mu + i,#,求分母的通式,i += 1,# i,自增的通式,t = 1.0 / mu,#,求當(dāng)前項的通式,s = s + t,#,求和的通式,print s = , s,#,循環(huán)結(jié)束后,打印總和,程序:,提問:,(,1,)變量,i,、,mu,、,s,的初值只能是,1,、,0,、,0.0,嗎?,(,2,)循環(huán)體內(nèi)語句的先后順序可以隨意調(diào)換嗎?,計算機(jī)編程導(dǎo)論,1-8,Copyright ? SWFU-CISD, 2012. All rights reserved.,【例,4-7,
6、】,通過以下表達(dá)式求,的近似值,當(dāng)某項小于,0.00000001,(即,1e-8,)時停止循環(huán)。,),1,2,(,5,3,2,1,9,7,5,3,4,3,2,1,7,5,3,3,2,1,5,3,2,1,3,1,1,2,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,n,n,?,?,?,?,?,計算機(jī)編程導(dǎo)論,1-9,Copyright ? SWFU-CISD, 2012. All rights reserved.,分析:,該題使用循環(huán)結(jié)構(gòu)來解決,只有當(dāng)某一項小于,1e-8,時才,停止迭代,因此循環(huán)次數(shù)是不確定的。觀察表達(dá)式中,相鄰兩項的規(guī)
7、律是,前一項的分子乘以,1,個整數(shù),值“,i,”可得后一項的分子,而這個整數(shù)值“,i,”隨著,循環(huán)次數(shù)由,1,遞增到,n,;前一項的分母乘以“,2*i+1,”,可得后一項的分母。該題的通式有以下幾個:,(,1,)分子的通式:,zi = zi * i,(,2,)分母的通式:,mu = mu * (2 * i + 1),(,3,)變量,i,的通式:,i = i + 1,(,4,)當(dāng)前項的通式:,t,= zi*1.0/mu,(,5,)求和通式:,s=s+t,計算機(jī)編程導(dǎo)論,1-10,Copyright ? SWFU-CISD, 2012. All rights reserved.,程序:,#Exp4
8、_7.py,i = 1,zi = 1.0,mu = 1.0,t = 1.0,s = 0.0,while t = 1e-8:,s = s + t,zi = zi * i,mu = mu * ( 2 * i + 1),t = zi * 1.0 / mu,i += 1,print PAI = , (2 * s),判斷,t = 1e-8,?,將,t,累加到,s,圖,4-9,求近似值的框圖,開始,結(jié)束,False,True,初始化,zi,、,mu,、,i,、,t,、,s,求分子,zi,、分母,mu,求當(dāng)前項,t,i,自增,1,輸出,的近似值,計算機(jī)編程導(dǎo)論,1-11,Copyright ? SWFU-C
9、ISD, 2012. All rights reserved.,【例,4-8,】,求,1 100,之間能被,7,整除,但不能同,時被,5,整除的所有整數(shù),。,【分析】,(,1,)本題需要對,1 100,范圍內(nèi)的所有數(shù)一一進(jìn),行判斷。,(,2,)本題的循環(huán)次數(shù)確,定是,100,次。,(,3,)在每次循環(huán)過程中,需要用,if,語句進(jìn)行條件,判斷。因此本題是循環(huán),嵌套選擇的結(jié)構(gòu)。,判斷,i = 100,?,圖,4-10,整除問題的框圖,開始,結(jié)束,False,True,i,自增,1,為,i,賦初值,1,判斷,i,是否能被,7,整除但不能被,5,整,True,False,輸出,i,計算機(jī)編程導(dǎo)論,1-
10、12,Copyright ? SWFU-CISD, 2012. All rights reserved.,i = 1,# i,既是循環(huán)變量,同時又是被判斷的數(shù),print(1100,之間能被,7,整除,但不能同時被,5,整除的所有數(shù)是,:),while i = 100:,#,判斷循環(huán)是否結(jié)束,if i % 7 = 0 and i % 5 != 0:,#,判斷本次的,i,是否滿足條件,print i, t ,#,打印滿足條件的,i,i += 1,#,每次循環(huán),i,應(yīng)自增,程序:,提問:,請問語句“,i += 1,”可以和語句,“,print i, t ,”對齊嗎?,計算機(jī)編程導(dǎo)論,1-13,Co
11、pyright ? SWFU-CISD, 2012. All rights reserved.,【例,4-9,】輸出“水仙花數(shù)”。所謂水仙花數(shù)是指,1,個,3,位的十進(jìn)制數(shù),其各位數(shù)字的立方和等于該數(shù)本身。,例如:,153,是水仙花數(shù),因?yàn)?153 = 1,3,+ 5,3,+ 3,3,。,【分析】,(,1,)本題需要對,100 999,范圍內(nèi)的所有數(shù)一一進(jìn)行,判斷。,(,2,)本題的變量,i,既是循,環(huán)變量,同時也是被判斷,的數(shù)。,(,3,)每次循環(huán)過程中需要,用,if,語句進(jìn)行條件判斷。,因此本題也是循環(huán)嵌套選,擇的結(jié)構(gòu)。,計算機(jī)編程導(dǎo)論,1-14,Copyright ? SWFU-CISD
12、, 2012. All rights reserved.,提問:,變量,i,是一個三位整數(shù),例如,i = 123,(,1,)請寫出分離,i,的百位數(shù)的表達(dá)式。,(,2,)請寫出分離,i,的十位數(shù)的表達(dá)式。,(,3,)請寫出分離,i,的個位數(shù)的表達(dá)式。,i = 100,print(,所有的水仙花數(shù)是:,),while i = 999:,#,判斷循環(huán)是否結(jié)束,bai = int(i / 100),#,分離,i,的百位數(shù),shi = int(i % 100) / 10),#,分離,i,的十位數(shù),ge = int(i % 10),#,分離,i,的個位數(shù),if bai * 3 + shi * 3 + g
13、e * 3 = i:,#,判斷條件,print,i,#,打印水仙花數(shù),i += 1,#,變量,i,自增,程序:,計算機(jī)編程導(dǎo)論,1-15,Copyright ? SWFU-CISD, 2012. All rights reserved.,4.4,for,語句,for,取值,in,序列,:,循環(huán)體,循環(huán)體,是,否,Python,提供的另一個循環(huán)機(jī)制是,for,語句,它提供了,Python,中最強(qiáng)大的循環(huán)結(jié)構(gòu)。,Python,中的,for,語句與傳統(tǒng)的,for,語句不太一樣,它接受可迭代對象(例如序列或迭代器,)作為其參數(shù),每次迭代其中的一個元素。,還有值未取嗎?,計算機(jī)編程導(dǎo)論,1-16,Cop
14、yright ? SWFU-CISD, 2012. All rights reserved.,?,列表、元組、字符串都是序列。序列類型有著,相同的訪問模式:它的每一個元素可以通過指,定一個偏移量的方式得到;而多個元素可以通,過切片操作的方式得到。,?,序列操作可以通過很多內(nèi)建函數(shù)來實(shí)現(xiàn),比如,求序列長度,len( ),;求最大值,max( ),;最小值,min( ),;求和,sum( ),;排序,sorted( ),等,以上,這些內(nèi)建函數(shù)的實(shí)現(xiàn)都離不開循環(huán)結(jié)構(gòu)。,4.3.1 for,語句用于序列類型,計算機(jī)編程導(dǎo)論,1-17,Copyright ? SWFU-CISD, 2012. All r
15、ights reserved.,【例,4-10,】創(chuàng)建,1,個由分?jǐn)?shù)構(gòu)成的列表,求出所有分?jǐn)?shù),的平均分。,方法一:使用,Python,的內(nèi)建函數(shù),sum( ),求和,然后再,求平均分。, score = 70, 90, 78, 85, 97, 94, 65, 80, score,70, 90, 78, 85, 97, 94, 65, 80, aver = sum(score) / 8.0, aver,82.375,計算機(jī)編程導(dǎo)論,1-18,Copyright ? SWFU-CISD, 2012. All rights reserved.,方法二:使用,for,語句,循環(huán)計算列表元素之和。,【分
16、析】,(,1,)以上列表,score,有,8,個元素,這些,元素的序列索引范圍是“,0 7”,。,(,2,)本題用到成員測試運(yùn)算符“,in,”,如果成員在序列中,測試結(jié)果為,“,True”,,否則為“,False”,。,(,3,)本題用到計算序列長度的內(nèi)建,函數(shù),len( ),。,(,4,)本題用到內(nèi)建函數(shù),range( ),,,range( ),函數(shù)的完整語法要求提供,2,個,或,3,個整型參數(shù):,range(start, end, step),計算機(jī)編程導(dǎo)論,1-19,Copyright ? SWFU-CISD, 2012. All rights reserved.,score = 70,
17、 90, 78, 85, 97, 94, 65, 80,print ,所有的分?jǐn)?shù)值是:,print score,#,打印列表,sum = 0,for i in range(len(score):,print scorei,sum += scorei,#,循環(huán)體,對列表元素求和,aver = sum / 8.0,#,循環(huán)之后,求平均值,print naver = , aver,程序:,計算機(jī)編程導(dǎo)論,1-20,Copyright ? SWFU-CISD, 2012. All rights reserved.,?,循環(huán)的嵌套是指在一個循環(huán)中又包含另外一個,完整的循環(huán),即循環(huán)體中又包含循環(huán)語句。,w
18、hile,循環(huán)和,for,循環(huán)可以相互嵌套。,?,循環(huán)嵌套的執(zhí)行過程是:一次外循環(huán)對應(yīng)著完,整的一輪內(nèi)循環(huán)。,利用,for,語句實(shí)現(xiàn)雙層循環(huán)嵌套,計算機(jī)編程導(dǎo)論,1-21,Copyright ? SWFU-CISD, 2012. All rights reserved.,【例,4-13,】,使用,for,循環(huán)的嵌套結(jié)構(gòu)打印,9-9,乘法表,【分析】,9-9,乘法表由,9,行組成,每行的列數(shù)有規(guī)律地遞增。,通過觀察可以看出,表達(dá)式“,X * Y = Z”,中的,X,是內(nèi)循環(huán)變量,j,的取值,,Y,是外循環(huán)變量,i,的取值,,Z,是,X,乘以,Y,的結(jié)果。,計算機(jī)編程導(dǎo)論,1-22,Copyrig
19、ht ? SWFU-CISD, 2012. All rights reserved.,for i in range(1, 10, 1):,#,控制行,for j in range(1, i+1, 1):,#,控制列,print i, *, j, =, i*j, ,t,print n,#,每行末尾的換行,程序:,計算機(jī)編程導(dǎo)論,1-23,Copyright ? SWFU-CISD, 2012. All rights reserved.,【課堂練習(xí)】使用,for,循環(huán)的嵌套結(jié)構(gòu)編程,打,印以下圖形。,(1),矩形,(2),直角三角形,(3),正三角形,計算機(jī)編程導(dǎo)論,1-24,Copyright
20、? SWFU-CISD, 2012. All rights reserved.,?,Python,提供了一條提前結(jié)束循環(huán)的語句,break,語句。,?,當(dāng)在循環(huán)過程中,某個條件被觸發(fā)(一般通過,if,語句檢查),需要立即停止循環(huán)時使用。,break,語句可以用在,while,和,for,循環(huán)中。,4.4 break,語句,計算機(jī)編程導(dǎo)論,1-25,Copyright ? SWFU-CISD, 2012. All rights reserved.,【例,4-15,】求,200,以內(nèi)能被,17,整除的最大正整數(shù)。,【分析】這個查找過程將以遞,減的方式遍歷,200,至,1,之間的整,數(shù),當(dāng)找到第,1
21、,個能被,17,整除的,數(shù)時,循環(huán)過程立即停止,后,續(xù)還沒有遍歷的數(shù)將無需再進(jìn),行判斷,因此可以使用,break,語,句將循環(huán)提前終止。,for i in range(200, 1, -1):,if i % 17 = 0:,break,print(200,以內(nèi)能被,17,整除的最大,數(shù)是:, i),程序:,計算機(jī)編程導(dǎo)論,1-26,Copyright ? SWFU-CISD, 2012. All rights reserved.,【例,4-16,】從鍵盤輸入一個整數(shù),判斷該數(shù)是否為,素數(shù)。,計算機(jī)編程導(dǎo)論,1-27,Copyright ? SWFU-CISD, 2012. All rights reserved.,計算機(jī)編程導(dǎo)論,1-28,Copyright ? SWFU-CISD, 2012. All rights reserved.,#Exp4_16.py,x=input(,請輸入,1,個整數(shù):,),for i in range(2, x, 1):,if x % i=0:,break,if i=x-1:,print x, ,是素數(shù),elif ix-1:,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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度酒店客房滿意度調(diào)查與改進(jìn)合同
- 2025年度酒店設(shè)計合同合同解除與終止程序
- 二零二五年度上市公司財務(wù)審計與咨詢服務(wù)合同范本
- 2025年度駕校學(xué)員科目四夜間駕駛培訓(xùn)合同
- 二零二五年度電梯維保與智能物聯(lián)網(wǎng)解決方案合同
- 二零二五年度地鐵項目合同終止協(xié)議
- 二零二五年度學(xué)校食堂承包與食品安全教育合同
- 二零二五年度展覽館裝修合同終止及展覽內(nèi)容調(diào)整協(xié)議
- 三方月嫂保姆家政服務(wù)合同(2024版)
- 二零二五版木材加工設(shè)備租賃合同范本8篇
- 2024年高考八省聯(lián)考地理適應(yīng)性試卷附答案解析
- 足浴技師與店內(nèi)禁止黃賭毒協(xié)議書范文
- 中國高血壓防治指南(2024年修訂版)要點(diǎn)解讀
- 2024-2030年中國光電干擾一體設(shè)備行業(yè)發(fā)展現(xiàn)狀與前景預(yù)測分析研究報告
- 湖南省岳陽市岳陽樓區(qū)2023-2024學(xué)年七年級下學(xué)期期末數(shù)學(xué)試題(解析版)
- 農(nóng)村自建房安全合同協(xié)議書
- 杜仲葉藥理作用及臨床應(yīng)用研究進(jìn)展
- 4S店售后服務(wù)6S管理新規(guī)制度
- 高性能建筑鋼材的研發(fā)與應(yīng)用
- 無線廣播行業(yè)現(xiàn)狀分析
- 漢語言溝通發(fā)展量表(長表)-詞匯及手勢(8-16月齡)
評論
0/150
提交評論