大學(xué)Python學(xué)習(xí)課件第7講-循環(huán)結(jié)構(gòu)-for_第1頁(yè)
大學(xué)Python學(xué)習(xí)課件第7講-循環(huán)結(jié)構(gòu)-for_第2頁(yè)
大學(xué)Python學(xué)習(xí)課件第7講-循環(huán)結(jié)構(gòu)-for_第3頁(yè)
大學(xué)Python學(xué)習(xí)課件第7講-循環(huán)結(jié)構(gòu)-for_第4頁(yè)
大學(xué)Python學(xué)習(xí)課件第7講-循環(huán)結(jié)構(gòu)-for_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

計(jì)算機(jī)基礎(chǔ)與應(yīng)用(II)(經(jīng)管類)

——計(jì)算思維與Python程序設(shè)計(jì)第7講

循環(huán)結(jié)構(gòu)-for上一講回顧While循環(huán)的特點(diǎn)While語(yǔ)句之前有一個(gè)為循環(huán)控制變量賦初值的語(yǔ)句循環(huán)體中有表達(dá)式來(lái)改變循環(huán)控制變量的值本講內(nèi)容for循環(huán)語(yǔ)句循環(huán)應(yīng)用舉例continue語(yǔ)句循環(huán)體是否還有值未取嗎?for語(yǔ)句Python提供的另一個(gè)循環(huán)機(jī)制是for語(yǔ)句,它提供了Python中最強(qiáng)大的循環(huán)結(jié)構(gòu)。Python中的for語(yǔ)句接受可迭代對(duì)象(例如序列或迭代器)作為其參數(shù),每次迭代其中的一個(gè)元素。for語(yǔ)句的執(zhí)行過程是:每次循環(huán),判斷循環(huán)索引值是否還在序列中,如果在,取出該值提供給循環(huán)體內(nèi)的語(yǔ)句使用;如果不在,則結(jié)束循環(huán)。for

取值in序列:

循環(huán)體循環(huán)體是否還有值未取嗎?Else語(yǔ)句塊for變量in序列或迭代器:

循環(huán)體else:

else語(yǔ)句塊for循環(huán)正常退出后,執(zhí)行else語(yǔ)句塊;如果是因?yàn)閳?zhí)行循環(huán)體中的break語(yǔ)句而導(dǎo)致循環(huán)退出,else語(yǔ)句塊不會(huì)執(zhí)行。for語(yǔ)句for語(yǔ)句用于序列類型列表、元組、字符串都是序列。序列類型有著相同的訪問模式:它的每一個(gè)元素可以通過指定一個(gè)偏移量的方式得到;而多個(gè)元素可以通過切片操作的方式得到。序列操作可以通過很多內(nèi)建函數(shù)來(lái)實(shí)現(xiàn),這些內(nèi)建函數(shù)的實(shí)現(xiàn)都離不開循環(huán)結(jié)構(gòu)。求序列長(zhǎng)度len();求最大值max();最小值min();求和sum();排序sorted()等示例1-通過序列索引進(jìn)行迭代(方法一)【示例1】創(chuàng)建1個(gè)由分?jǐn)?shù)構(gòu)成的列表,求出所有分?jǐn)?shù)的平均分。方法一:使用Python的內(nèi)建函數(shù)sum()求和,然后再求平均分。程序保存為07_aver1.py示例1-方法1程序思考題如果不用sum函數(shù),如何利用while循環(huán)計(jì)算列表中的和?程序示例示例1-通過序列索引進(jìn)行迭代(方法二)方法二:使用for語(yǔ)句,通過序列索引進(jìn)行迭代。程序保存為07_aver2.py【分析】要求得列表元素的平均值,首先要使用循環(huán)結(jié)構(gòu)求得所有元素的總和,然后再將總和除以元素個(gè)數(shù)即可得到列表元素平均值。示例1-方法2程序說(shuō)明for循環(huán)的表達(dá)式中使用內(nèi)建函數(shù)len()獲得score序列長(zhǎng)度;使用range()函數(shù)創(chuàng)建了要迭代的序列[0,1,2,3,4,5,6,7],變量i對(duì)該列進(jìn)行迭代,每循環(huán)一次取出列表中的一項(xiàng)作為列表元素的下標(biāo)。本題用到成員測(cè)試運(yùn)算符“in”,如果成員在序列中,測(cè)試結(jié)果為“True”,否則為“False”。range()函數(shù)說(shuō)明內(nèi)建函數(shù)range(),range(start,end,step)range()函數(shù)會(huì)產(chǎn)生1個(gè)包含所有等差數(shù)列級(jí)數(shù)k的列表,k的范圍start<=k<end,k每次遞增step,step不能為0作用:產(chǎn)生一個(gè)列表參數(shù)含義:start:計(jì)數(shù)從start開始。默認(rèn)是從0開始。例如range(5)等價(jià)于range(0,

5),結(jié)果是[0,1,2,3,4]end:計(jì)數(shù)到end結(jié)束,但不包括end。例如:range(0,

5)的結(jié)果是[0,1,2,3,4]沒有5step:每次跳躍的間距,默認(rèn)為1。例如:range(0,

5)等價(jià)于range(0,5,1);Step值可以為負(fù)數(shù),如果為負(fù)數(shù),則start的值大于end的值示例1-方法2程序示例1-通過序列索引進(jìn)行迭代(方法三)方法三:使用for語(yǔ)句,通過序列項(xiàng)運(yùn)算。程序保存為07_aver3.py

循環(huán)嵌套循環(huán)的嵌套是指在一個(gè)循環(huán)中又包含另外一個(gè)完整的循環(huán),即循環(huán)體中又包含循環(huán)語(yǔ)句。循環(huán)嵌套的執(zhí)行過程是:一次外循環(huán)對(duì)應(yīng)著完整的一輪內(nèi)循環(huán)。while循環(huán)和for循環(huán)可以相互嵌套。示例2-利用for語(yǔ)句實(shí)現(xiàn)雙層循環(huán)嵌套【示例2】使用for循環(huán)的嵌套結(jié)構(gòu)打印9-9乘法表。程序保存為07_comp.py【分析】9-9乘法表由9行組成,每行的列數(shù)有規(guī)律地遞增。通過觀察可以看出,表達(dá)式“X*Y=Z”中的X是內(nèi)循環(huán)變量j的取值,Y是外循環(huán)變量i的取值,Z是X乘以Y的結(jié)果。示例2-程序循環(huán)應(yīng)用-示例3求以下表達(dá)式的值,其中n值從鍵盤輸入。參考值:當(dāng)n=11時(shí),s=1.833333。程序保存為07_series.py【分析】以上問題屬于數(shù)學(xué)中的級(jí)數(shù)求和問題,是使用循環(huán)結(jié)構(gòu)解決的一類常見問題。級(jí)數(shù)求和編程的重點(diǎn)在于找到表達(dá)式的規(guī)律,分析每次循環(huán)都要完成的事件,寫出“通式”。該題的通式有以下幾個(gè):分母的通式(所有分母看成:0+1+2+…+i):mu=mu+i(mu初值為0,i初值為1)當(dāng)前項(xiàng)的通式:t=1.0/mu求和的通式:s=s+t變量i的通式:i=i+1示例3程序循環(huán)結(jié)構(gòu)示例:示例4【例4】求1~100之間能被7整除,但不能同時(shí)被5整除的所有整數(shù)。程序保存為07_division.py?!痉治觥勘绢}需要對(duì)1~100范圍內(nèi)的所有數(shù)一一進(jìn)行判斷。本題的循環(huán)次數(shù)確定是100次。在每次循環(huán)過程中需要用if語(yǔ)句進(jìn)行條件判斷。因此本題是循環(huán)嵌套選擇的結(jié)構(gòu)。示例4:程序示例4:思考請(qǐng)問語(yǔ)句“i+=1”可以和語(yǔ)句“printi,'\t'”對(duì)齊嗎?示例4:思考如果使用for循環(huán)該如何實(shí)現(xiàn)?continute語(yǔ)句continue語(yǔ)句的作用是終止本次循環(huán),并忽略循環(huán)體中continue之后的語(yǔ)句,然后回到循環(huán)的頂端,繼續(xù)執(zhí)行下一次循環(huán)?!纠?-17】求200以內(nèi)能被17整除的所有正整數(shù),并統(tǒng)計(jì)滿足條件的數(shù)的個(gè)數(shù)。循環(huán)結(jié)構(gòu)示例:示例5【例5】輸出“水仙花數(shù)”。所謂水仙花數(shù)是指1個(gè)3位的十進(jìn)制數(shù),其各位數(shù)字的立方和等于該數(shù)本身。程序保存為narcissus.py。例如:153是水仙花數(shù),因?yàn)?53=13+53+33?!痉治觥勘绢}需要對(duì)100~999范圍內(nèi)的所有數(shù)一一進(jìn)行判斷。本題的變量i既是循環(huán)變量,同時(shí)也是被判斷的數(shù)。每次循環(huán)過程中需要用if語(yǔ)句進(jìn)行條件判斷。因此本題也是循環(huán)嵌套選擇的結(jié)構(gòu)。示例5程序思考題while循環(huán)與for循環(huán)在用法上有哪些區(qū)別?課堂練習(xí)與課后作業(yè)課堂練習(xí)本講課件所有示例教材第四章剩余的例子課后作業(yè)P75:1,9已知期末考試成績(jī):[91,89,76,67

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論