Python程序設(shè)計(jì)第4章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)(第7次課)2_第1頁
Python程序設(shè)計(jì)第4章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)(第7次課)2_第2頁
Python程序設(shè)計(jì)第4章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)(第7次課)2_第3頁
Python程序設(shè)計(jì)第4章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)(第7次課)2_第4頁
Python程序設(shè)計(jì)第4章循環(huán)結(jié)構(gòu)程序設(shè)計(jì)(第7次課)2_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、計(jì)算機(jī)編程導(dǎo)論計(jì)算機(jī)編程導(dǎo)論本章主講本章主講 趙家剛趙家剛 1-2Copyright SWFU-CISD, 2012. All rights reserved.計(jì)算機(jī)編程導(dǎo)論計(jì)算機(jī)編程導(dǎo)論4.3.3 while語句用于無限循環(huán)語句用于無限循環(huán)要點(diǎn):要點(diǎn):v循環(huán)結(jié)構(gòu)理解循環(huán)結(jié)構(gòu)理解v二重循環(huán)結(jié)構(gòu)理解二重循環(huán)結(jié)構(gòu)理解v二重循環(huán)的應(yīng)用二重循環(huán)的應(yīng)用1-3Copyright SWFU-CISD, 2012. All rights reserved.計(jì)算機(jī)編程導(dǎo)論計(jì)算機(jī)編程導(dǎo)論4.3.3 while語句用于無限循環(huán)語句用于無限循環(huán)v當(dāng)當(dāng)while語句的語句的“表達(dá)式表達(dá)式”永遠(yuǎn)不會(huì)為布爾假時(shí),永遠(yuǎn)不會(huì)為

2、布爾假時(shí),循環(huán)將永遠(yuǎn)不會(huì)結(jié)束,形成無限循環(huán),也稱死循環(huán)將永遠(yuǎn)不會(huì)結(jié)束,形成無限循環(huán),也稱死循環(huán)。循環(huán)。v使用使用while語句構(gòu)成無限循環(huán)的格式通常為:語句構(gòu)成無限循環(huán)的格式通常為:while True:循環(huán)體循環(huán)體v可以在循環(huán)體內(nèi)使用可以在循環(huán)體內(nèi)使用break語句語句強(qiáng)制結(jié)束死循強(qiáng)制結(jié)束死循環(huán)。環(huán)。1-4Copyright SWFU-CISD, 2012. All rights reserved.計(jì)算機(jī)編程導(dǎo)論計(jì)算機(jī)編程導(dǎo)論【例【例4-5】使用無限循環(huán)的方法編程實(shí)現(xiàn)例】使用無限循環(huán)的方法編程實(shí)現(xiàn)例4-2。a = input(請(qǐng)輸入字符,如果輸入請(qǐng)輸入字符,如果輸入 # 號(hào)號(hào)則結(jié)束輸入操作則

3、結(jié)束輸入操作: )while True:print(您輸入的字符是:您輸入的字符是:, a)a = input(請(qǐng)輸入字符,如果輸請(qǐng)輸入字符,如果輸入入 # 號(hào)則結(jié)束輸入操作號(hào)則結(jié)束輸入操作: )if a = #:break程序:程序:1-5Copyright SWFU-CISD, 2012. All rights reserved.計(jì)算機(jī)編程導(dǎo)論計(jì)算機(jī)編程導(dǎo)論【例【例4-6】求以下表達(dá)式的值,其中】求以下表達(dá)式的值,其中n值從鍵盤輸值從鍵盤輸入。參考值:當(dāng)入。參考值:當(dāng)n = 11時(shí),時(shí),s = 1.833333 。ns3211321121111-6Copyright SWFU-CISD,

4、2012. All rights reserved.計(jì)算機(jī)編程導(dǎo)論計(jì)算機(jī)編程導(dǎo)論【分析分析】(1)以上問題屬于數(shù)學(xué)中的級(jí)數(shù)求和問題,是使用)以上問題屬于數(shù)學(xué)中的級(jí)數(shù)求和問題,是使用循環(huán)結(jié)構(gòu)解決的一類常見問題。循環(huán)結(jié)構(gòu)解決的一類常見問題。(2)級(jí)數(shù)求和問題編程的重點(diǎn)在于通過觀察表達(dá)式)級(jí)數(shù)求和問題編程的重點(diǎn)在于通過觀察表達(dá)式的規(guī)律,分析每次循環(huán)都要完成的事件。通常將這的規(guī)律,分析每次循環(huán)都要完成的事件。通常將這些事件進(jìn)行局部分解,稱為些事件進(jìn)行局部分解,稱為“通式通式”。 該題的通式有以下幾個(gè):該題的通式有以下幾個(gè):(1)分母的通式:)分母的通式:(2)變量)變量i的通式:的通式:(3)當(dāng)前項(xiàng)的

5、通式:)當(dāng)前項(xiàng)的通式:(4)求和的通式:)求和的通式:mu = mu + ii = i + 1t = 1.0 / mus = s + t1-7Copyright SWFU-CISD, 2012. All rights reserved.計(jì)算機(jī)編程導(dǎo)論計(jì)算機(jī)編程導(dǎo)論i=1mu = 0s = 0.0n = input(請(qǐng)輸入請(qǐng)輸入n值值: ) #或用書上的代碼或用書上的代碼while i = 1e-8:s = s + t zi = zi * imu = mu * ( 2 * i + 1)t = zi * 1.0 / mui += 1print PAI = , (2 * s)1-11Copyrigh

6、t SWFU-CISD, 2012. All rights reserved.計(jì)算機(jī)編程導(dǎo)論計(jì)算機(jī)編程導(dǎo)論【例【例4-8】求求1 100之間能被之間能被7整除,但不能同整除,但不能同時(shí)被時(shí)被5整除的所有整數(shù)整除的所有整數(shù) ?!痉治龇治觥浚?)本題需要對(duì))本題需要對(duì)1 100范圍內(nèi)的所有數(shù)一一進(jìn)范圍內(nèi)的所有數(shù)一一進(jìn)行判斷。行判斷。(2)本題的循環(huán)次數(shù)確)本題的循環(huán)次數(shù)確定是定是100次。次。 (3)在每次循環(huán)過程中)在每次循環(huán)過程中需要用需要用 if 語句進(jìn)行條件語句進(jìn)行條件判斷。因此本題是循環(huán)判斷。因此本題是循環(huán)嵌套選擇的結(jié)構(gòu)。嵌套選擇的結(jié)構(gòu)。1-12Copyright SWFU-CISD,

7、2012. All rights reserved.計(jì)算機(jī)編程導(dǎo)論計(jì)算機(jī)編程導(dǎo)論i = 1 # i 既是循環(huán)變量,同時(shí)又是被判斷的數(shù)既是循環(huán)變量,同時(shí)又是被判斷的數(shù)print(1100之間能被之間能被7整除,但不能同時(shí)被整除,但不能同時(shí)被5整除的所有數(shù)是整除的所有數(shù)是:)while i = 100: #判斷循環(huán)是否結(jié)束判斷循環(huán)是否結(jié)束 if i % 7 = 0 and i % 5 != 0: #判斷本次的判斷本次的i是否滿足條件是否滿足條件 print i, t #打印滿足條件的打印滿足條件的i i += 1 #每次循環(huán)每次循環(huán) i 應(yīng)自增應(yīng)自增程序:程序:提問:提問:請(qǐng)問語句請(qǐng)問語句“i +

8、= 1”可以和語句可以和語句 “print i, t ”對(duì)齊嗎?對(duì)齊嗎?1-13Copyright SWFU-CISD, 2012. All rights reserved.計(jì)算機(jī)編程導(dǎo)論計(jì)算機(jī)編程導(dǎo)論【例【例4-9】輸出】輸出“水仙花數(shù)水仙花數(shù)”。所謂水仙花數(shù)是指。所謂水仙花數(shù)是指1個(gè)個(gè)3位的十進(jìn)制數(shù),其各位數(shù)字的立方和等于該數(shù)本身。位的十進(jìn)制數(shù),其各位數(shù)字的立方和等于該數(shù)本身。例如:例如:153是水仙花數(shù),因?yàn)槭撬苫〝?shù),因?yàn)?53 = 13 + 53 + 33 。【分析分析】(1)本題需要對(duì))本題需要對(duì)100 999范圍內(nèi)的所有數(shù)一一進(jìn)行范圍內(nèi)的所有數(shù)一一進(jìn)行判斷。判斷。(2)本題的變量

9、)本題的變量 i 既是循既是循環(huán)變量,同時(shí)也是被判斷環(huán)變量,同時(shí)也是被判斷的數(shù)。的數(shù)。(3)每次循環(huán)過程中需要)每次循環(huán)過程中需要用用 if 語句進(jìn)行條件判斷。語句進(jìn)行條件判斷。因此本題也是循環(huán)嵌套選因此本題也是循環(huán)嵌套選擇的結(jié)構(gòu)。擇的結(jié)構(gòu)。1-14Copyright SWFU-CISD, 2012. All rights reserved.計(jì)算機(jī)編程導(dǎo)論計(jì)算機(jī)編程導(dǎo)論提問:提問:變量變量 i 是一個(gè)三位整數(shù),例如是一個(gè)三位整數(shù),例如 i = 123(1)請(qǐng)寫出分離)請(qǐng)寫出分離 i 的百位數(shù)的表達(dá)式。的百位數(shù)的表達(dá)式。(2)請(qǐng)寫出分離)請(qǐng)寫出分離 i 的十位數(shù)的表達(dá)式。的十位數(shù)的表達(dá)式。(3)

10、請(qǐng)寫出分離)請(qǐng)寫出分離 i 的個(gè)位數(shù)的表達(dá)式。的個(gè)位數(shù)的表達(dá)式。i = 100print(所有的水仙花數(shù)是:所有的水仙花數(shù)是:)while i score = 70, 90, 78, 85, 97, 94, 65, 80 score70, 90, 78, 85, 97, 94, 65, 80 aver = sum(score) / 8.0 aver82.375 1-18Copyright SWFU-CISD, 2012. All rights reserved.計(jì)算機(jī)編程導(dǎo)論計(jì)算機(jī)編程導(dǎo)論方法二:使用方法二:使用for語句,循環(huán)計(jì)算列表元素之和。語句,循環(huán)計(jì)算列表元素之和。 【分析分析】(1)

11、以上列表)以上列表score有有8個(gè)元素,這個(gè)元素,這些元素的序列索引范圍是些元素的序列索引范圍是“0 7”。(2)本題用到成員測(cè)試運(yùn)算符)本題用到成員測(cè)試運(yùn)算符“in”,如果成員在序列中,測(cè)試結(jié)果為如果成員在序列中,測(cè)試結(jié)果為“True”,否則為,否則為“False”。(3)本題用到計(jì)算序列長(zhǎng)度的內(nèi)建)本題用到計(jì)算序列長(zhǎng)度的內(nèi)建函數(shù)函數(shù)len( )。(4)本題用到內(nèi)建函數(shù))本題用到內(nèi)建函數(shù)range( ),range( )函數(shù)的完整語法要求提供函數(shù)的完整語法要求提供2個(gè)個(gè)或或3個(gè)整型參數(shù):個(gè)整型參數(shù):range(start, end, step) 1-19Copyright SWFU-CIS

12、D, 2012. All rights reserved.計(jì)算機(jī)編程導(dǎo)論計(jì)算機(jī)編程導(dǎo)論score = 70, 90, 78, 85, 97, 94, 65, 80print 所有的分?jǐn)?shù)值是:所有的分?jǐn)?shù)值是:print score #打印列表打印列表sum = 0for i in range(len(score): print scorei, sum += scorei #循環(huán)體循環(huán)體對(duì)列表元素求和對(duì)列表元素求和aver = sum / 8.0 #循環(huán)之后,求平均值循環(huán)之后,求平均值print naver = , aver程序:程序:1-20Copyright SWFU-CISD, 2012.

13、All rights reserved.計(jì)算機(jī)編程導(dǎo)論計(jì)算機(jī)編程導(dǎo)論v循環(huán)的嵌套是指在一個(gè)循環(huán)中又包含另外一個(gè)循環(huán)的嵌套是指在一個(gè)循環(huán)中又包含另外一個(gè)完整的循環(huán),即循環(huán)體中又包含循環(huán)語句。完整的循環(huán),即循環(huán)體中又包含循環(huán)語句。while循環(huán)和循環(huán)和for循環(huán)可以相互嵌套。循環(huán)可以相互嵌套。 v循環(huán)嵌套的執(zhí)行過程是:一次外循環(huán)對(duì)應(yīng)著完循環(huán)嵌套的執(zhí)行過程是:一次外循環(huán)對(duì)應(yīng)著完整的一輪內(nèi)循環(huán)。整的一輪內(nèi)循環(huán)。利用利用for語句實(shí)現(xiàn)雙層循環(huán)嵌套語句實(shí)現(xiàn)雙層循環(huán)嵌套1-21Copyright SWFU-CISD, 2012. All rights reserved.計(jì)算機(jī)編程導(dǎo)論計(jì)算機(jī)編程導(dǎo)論【例例4-

14、13】使用使用for循環(huán)的嵌套結(jié)構(gòu)打印循環(huán)的嵌套結(jié)構(gòu)打印9-9乘法表乘法表 【分析分析】9-9乘法表由乘法表由9行組成,每行的列數(shù)有規(guī)律地遞增。行組成,每行的列數(shù)有規(guī)律地遞增。通過觀察可以看出,表達(dá)式通過觀察可以看出,表達(dá)式“X * Y = Z”中的中的X是內(nèi)循環(huán)變量是內(nèi)循環(huán)變量j的取值,的取值,Y是外循環(huán)變量是外循環(huán)變量i的取值,的取值,Z是是X乘以乘以Y的結(jié)果。的結(jié)果。 1-22Copyright SWFU-CISD, 2012. All rights reserved.計(jì)算機(jī)編程導(dǎo)論計(jì)算機(jī)編程導(dǎo)論for i in range(1, 10, 1): #控制行控制行for j in rang

15、e(1, i+1, 1): #控制列控制列print i, *, j, =, i*j, tprint n #每行末尾的換行每行末尾的換行程序:程序:1-23Copyright SWFU-CISD, 2012. All rights reserved.計(jì)算機(jī)編程導(dǎo)論計(jì)算機(jī)編程導(dǎo)論【課堂練習(xí)課堂練習(xí)】使用使用for循環(huán)的嵌套結(jié)構(gòu)編程,循環(huán)的嵌套結(jié)構(gòu)編程,打印以下圖形。打印以下圖形。 (1)(1)矩形矩形(2)(2)直角三角形直角三角形(3)(3)正三角形正三角形1-24Copyright SWFU-CISD, 2012. All rights reserved.計(jì)算機(jī)編程導(dǎo)論計(jì)算機(jī)編程導(dǎo)論vPyt

16、hon提供了一條提前結(jié)束循環(huán)的語句提供了一條提前結(jié)束循環(huán)的語句break語句。語句。v當(dāng)在循環(huán)過程中,某個(gè)條件被觸發(fā)(一般通過當(dāng)在循環(huán)過程中,某個(gè)條件被觸發(fā)(一般通過if語句檢查),需要立即停止循環(huán)時(shí)使用。語句檢查),需要立即停止循環(huán)時(shí)使用。break語句可以用在語句可以用在while和和for循環(huán)中。循環(huán)中。 4.4 break語句語句 1-25Copyright SWFU-CISD, 2012. All rights reserved.計(jì)算機(jī)編程導(dǎo)論計(jì)算機(jī)編程導(dǎo)論【例例4-15】求求200以內(nèi)能被以內(nèi)能被17整除的最大正整數(shù)。整除的最大正整數(shù)。 【分析分析】這個(gè)查找過程將以遞這個(gè)查找過程將

17、以遞減的方式遍歷減的方式遍歷200至至1之間的整之間的整數(shù),當(dāng)找到第數(shù),當(dāng)找到第1個(gè)能被個(gè)能被17整除的整除的數(shù)時(shí),循環(huán)過程立即停止,后數(shù)時(shí),循環(huán)過程立即停止,后續(xù)還沒有遍歷的數(shù)將無需再進(jìn)續(xù)還沒有遍歷的數(shù)將無需再進(jìn)行判斷,因此可以使用行判斷,因此可以使用break語語句將循環(huán)提前終止。句將循環(huán)提前終止。 for i in range(200, 1, -1):if i % 17 = 0:breakprint(200以內(nèi)能被以內(nèi)能被17整除的最大整除的最大數(shù)是:數(shù)是:, i) 程序:程序:1-26Copyright SWFU-CISD, 2012. All rights reserved.計(jì)算機(jī)編

18、程導(dǎo)論計(jì)算機(jī)編程導(dǎo)論【例例4-16】從鍵盤輸入一個(gè)整數(shù),判斷該數(shù)是否為從鍵盤輸入一個(gè)整數(shù),判斷該數(shù)是否為素?cái)?shù)。素?cái)?shù)。 1-27Copyright SWFU-CISD, 2012. All rights reserved.計(jì)算機(jī)編程導(dǎo)論計(jì)算機(jī)編程導(dǎo)論1-28Copyright SWFU-CISD, 2012. All rights reserved. #Exp4_16.pyx=input(請(qǐng)輸入請(qǐng)輸入1個(gè)整數(shù):個(gè)整數(shù):)for i in range(2, x, 1):if x % i=0: breakif i=x-1:print x, 是素?cái)?shù)是素?cái)?shù)elif ix-1:print x, 不是素?cái)?shù)不是素?cái)?shù)計(jì)算機(jī)編程導(dǎo)論計(jì)算機(jī)編程導(dǎo)論1-29Copyright SWFU-CISD, 2012. All rights reserved.4.6 continute語句語句 continue語句的作用是終止當(dāng)前循環(huán),并忽略語句的作用是終止當(dāng)前循環(huán),并忽略continue之后的語句,然后回到循環(huán)的頂端,之后的語句,然后回到循環(huán)的頂端,繼續(xù)執(zhí)行下一次循環(huán)。繼續(xù)執(zhí)行下一次循環(huán)。計(jì)算機(jī)編程導(dǎo)論計(jì)算機(jī)編程導(dǎo)論1-30Copyright SWFU-CISD, 2012. All rights reserved.【例例4-17】 求求200以內(nèi)能

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論