Python程序設計項目化教程- 課件 項目三 循環(huán)結(jié)構(gòu)_第1頁
Python程序設計項目化教程- 課件 項目三 循環(huán)結(jié)構(gòu)_第2頁
Python程序設計項目化教程- 課件 項目三 循環(huán)結(jié)構(gòu)_第3頁
Python程序設計項目化教程- 課件 項目三 循環(huán)結(jié)構(gòu)_第4頁
Python程序設計項目化教程- 課件 項目三 循環(huán)結(jié)構(gòu)_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

項目三

循環(huán)結(jié)構(gòu)textbook教材Python程序設計項目化教程孫海洋

編著

電子工業(yè)出版社ISBN:9787121477546Contents目錄01.抓娃娃游戲—while循環(huán)02.猜數(shù)字謎游戲—循環(huán)流程控制04.項目小結(jié)03.模擬發(fā)紅包程序—for循環(huán)、列表PartOne

任務一抓娃娃游戲—while循環(huán)while循環(huán)結(jié)構(gòu)【任務描述】抓娃娃游戲玩一局需要3元錢,根據(jù)充值卡中的金額判斷還能玩幾局?!救蝿辗治觥慨敚╳hile)充值卡中的余額(balance)大于等于3元時,游戲一直進行(重復),同時每次支付3元,即balance-=3,直到balance小于3元時,游戲終止。while語句語法格式如下:執(zhí)行流程:首先判斷循環(huán)控制表達式Exp_cntrl的值,當該表達式的值為邏輯真(True)時,會一直執(zhí)行循環(huán)體(語句組A),直到表達式的值為邏輯假(False)時,結(jié)束循環(huán)體執(zhí)行。流程圖如下:循環(huán)控制變量任務實施運行結(jié)果如下:參考代碼如下:鞏固案例【案例1】輸入任意一個十進制正整數(shù),將其“反序”后輸出(若輸入:1234,則輸出:4321)把原數(shù)從最低位到最高位逐位分離→按照分離出的順序,用分離出的數(shù)字組成新的十進制整數(shù)逐步分離出當前n的最低位數(shù)字m為新數(shù)字,將剛分離的t作為低位,完成倒序去除已分離的低位,為下次分離做準備鞏固案例【案例2】計算并輸出1-3+5-7+…-99的值。符號位:每執(zhí)行一次sign就變成原來的相反數(shù)數(shù)值位:實現(xiàn)奇數(shù)累加當前數(shù)據(jù)項:組建當前的數(shù)據(jù)保存在item中求和變量:將每一輪得出的數(shù)據(jù)累加到s中PartTwo任務二猜數(shù)字謎游戲—循環(huán)流程控制【任務描述】設計一個猜數(shù)字游戲,隨機生成1到100之間的一個整數(shù),玩家總共有5次機會,每次輸入所猜數(shù)字,程序給出相應的提示信息(“再大一點”、“再小一點”或“$恭喜您猜中了$”),如果猜中了,提示“$恭喜您猜中了$”,“總共猜了*次”,游戲結(jié)束,否則游戲繼續(xù);總共有5次機會,若均沒猜中,則提示“很遺憾,今天運氣不好!”并退出循環(huán)。任務描述【任務分析】該任務涉及循環(huán)結(jié)構(gòu),所以讓我們一起來學習一下break、continue以及while-else語句吧!break語句break語句語法格式執(zhí)行流程在循環(huán)體中,當執(zhí)行到break語句時,終止break所在層的循環(huán),即“循環(huán)體內(nèi)break后的語句組”部分將不再被執(zhí)行,程序執(zhí)行流程從“循環(huán)結(jié)構(gòu)后的語句組”處,繼續(xù)往后執(zhí)行。break語句【示例1】分析以下程序,輸出其運行結(jié)果。因為n<5,所以n的取值為0,1,2,3,4,執(zhí)行5次后循環(huán)結(jié)構(gòu)正常終止。但當n==4時,滿足條件,執(zhí)行下面一行語句,然后執(zhí)行break語句。在單層循環(huán)中,當執(zhí)行到break時,立刻終止執(zhí)行整個循環(huán)結(jié)構(gòu),直接跳出整個while語句,執(zhí)行倒數(shù)第二行語句。continue語句語法格式執(zhí)行流程在循環(huán)體中,當執(zhí)行到continue語句時,本次循環(huán)體的執(zhí)行流程將跳過“循環(huán)體內(nèi)continue后的語句組”,繼續(xù)執(zhí)行“循環(huán)判斷表達式”,即提前進入下一次的循環(huán)準備工作。continue語句continue語句【示例】分析以下程序,輸出其運行結(jié)果。如果n==

4,先執(zhí)行下面一行語句,然后執(zhí)行continue語句,然后跳過打印“第4天打卡”這句話,并不結(jié)束循環(huán)結(jié)構(gòu),接著判斷n<5是否依然為邏輯真。運行結(jié)果如下:while-else語句語法格式執(zhí)行流程當循環(huán)條件表達式Exp_cntrl的邏輯值為假(False),即循環(huán)體執(zhí)行正常結(jié)束時,如果含有else部分,則執(zhí)行一次對應的else部分(語句組B)。如果循環(huán)執(zhí)行非正常結(jié)束,則不會執(zhí)行else部分。while-else循環(huán)結(jié)構(gòu)與任務實施else部分可有可無while-else循環(huán)結(jié)構(gòu)【示例1】分析以下程序,輸出其運行結(jié)果。先執(zhí)行while循環(huán),循環(huán)正常結(jié)束后執(zhí)行else部分,這時整個while-else結(jié)構(gòu)才執(zhí)行結(jié)束,接著執(zhí)行while-else結(jié)構(gòu)后的部分。運行結(jié)果如下:注:若while循環(huán)中包含break,則不執(zhí)行else部分。任務實施1.回到猜字謎游戲,第一步我們需要先導入random模塊,調(diào)用randint函數(shù)生成1到100之間的隨機整數(shù)作為謎底ans。2.輸入第一次所猜數(shù)字guess,次數(shù)cnt記為1。3.采用while-else循環(huán)結(jié)構(gòu),只要guess!=ans,循環(huán)即猜謎游戲就一直進行下去,當guess==ans時,猜中答案,即循環(huán)正常停止時,進入并執(zhí)行else部分語句組(“恭喜您猜中了”)。任務實施運行結(jié)果如下:PartThree任務三模擬發(fā)紅包程序—for循環(huán)、列表【任務描述】輸入發(fā)放總金額及發(fā)放個數(shù),隨機生成每個紅包的金額,并輸出。任務描述根據(jù)上述代碼,我們來逐個分析。首先,我們了解一下列表列表定義格式:列表名=[元素0,元素1,元素2,…,元素n-1]注意:列表的下標從0開始,各個元素可以是相同類型的,也可以是不同類型的,還可以是列表本身(列表嵌套)。range函數(shù)(1)僅給出結(jié)束位置:range(stop),對象range(0,stop)。該對象返回的序列是:0,1,…,stop-1,即stop為假尾巴,不被包含在其中(2)給出起、止位置:range(start,stop)。返回對象:start,start+1,start+2,…,stop-1。(3)起止及步長:range(start,stop,step)。從start到stop-1的區(qū)間內(nèi),按步長為step取若干樣點生成序列對象?!咀⒁狻浚翰介L為正,表示遞增,start<stop;步長為負,表示遞減,start>stopfor循環(huán)結(jié)構(gòu)我們先來了解一下for循環(huán)語法格式:可以是字符串、列表、元組等數(shù)據(jù)類型,也可以是range函數(shù)生成的序列對象等。執(zhí)行流程:循環(huán)變量的取值范圍從序列或序列對象的首元素開始,依次取到尾元素,即for循環(huán)的執(zhí)行次數(shù)等于“序列”的元素數(shù)量。for循環(huán)結(jié)構(gòu)習題1:從鍵盤輸入一字符串,把其中的大寫字母變?yōu)樾?,小寫字母變?yōu)榇髮?,其他不變,輸出轉(zhuǎn)換后的字符串。分析:Python中沒有字符類型,單個字符如'a'也被當成字符串處理。遍歷原字符串中的每個子字符串s,然后對每個s進行判斷,做相應的大小寫轉(zhuǎn)換(轉(zhuǎn)小寫:str.lower()、轉(zhuǎn)大寫:str.upper()),并把轉(zhuǎn)換后的結(jié)果鏈接到定義的新字符串后面,循環(huán)結(jié)束后即為轉(zhuǎn)換后的字符串。for循環(huán)結(jié)構(gòu)參考代碼:運行結(jié)果:for循環(huán)結(jié)構(gòu)習題2:輸出斐波那契數(shù)列的前10項,已知數(shù)列的前兩項值為0和1,從第三項開始每一項都等于其相鄰前兩項之和。分析1:定義長度為10的列表ls,下標范圍是從0到9,其中0、1號位置分別為數(shù)列前兩項的值0和1,即ls=[0,1]。故只需計算出第3到第10項,并依次存放到列表的2到9號位置。for循環(huán)結(jié)構(gòu)分析2:從第3項(i=2號位置)開始的每一項t都等于其相鄰的前兩項ls[i-1]和ls[i-2]之和,即t=ls[i-1]+ls[i-2]。然后調(diào)用列表的append方法,把t附加到列表ls的后面,即ls.append(t)。前兩項之和相加,若該位置下標為i,即ls[i]=ls[i-1]+ls[i-2]t參考代碼:運行結(jié)果:隨機數(shù)模塊random模塊導入:importrandom1.生成隨機浮點數(shù)(1)random()生成[0,1)之間的隨機浮點數(shù)(2)uniform(m,n)函數(shù)生成[m,n)或[m,n]之間的隨機浮點數(shù)2.生成隨機整數(shù)(1)randint(m,n)生成[m,n]之間的隨機整數(shù)【注意】包含起止邊界隨機數(shù)模塊random【示例1】生成5個10以內(nèi)的隨機奇數(shù)。randrange(start,stop=None,step=1)類似range返回序列對象中的隨機整數(shù)值,不包含“假尾巴”stop,step為步長某次運行結(jié)果:參考代碼:隨機數(shù)模塊random3.從給定集合中隨機選取元素(1)choice(sequence)從指定非空序列中隨機選取元素4.隨機打亂原序列元素的存儲順序shuffle(x,random=None),返回None(2)sample(sequence,k)抽樣:從指定非空序列中隨機抽取

k個不重復的元素PartFour項目小結(jié)知識點回顧知識點示例說明while循環(huán)w

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論