《Python少兒編程》PPT課件(共11章)第三章 神奇的分支和循環(huán)_第1頁(yè)
《Python少兒編程》PPT課件(共11章)第三章 神奇的分支和循環(huán)_第2頁(yè)
《Python少兒編程》PPT課件(共11章)第三章 神奇的分支和循環(huán)_第3頁(yè)
《Python少兒編程》PPT課件(共11章)第三章 神奇的分支和循環(huán)_第4頁(yè)
《Python少兒編程》PPT課件(共11章)第三章 神奇的分支和循環(huán)_第5頁(yè)
已閱讀5頁(yè),還剩36頁(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)介

Python少兒編程第三章神奇的分支和循環(huán)目錄1.1前進(jìn)的向?qū)?.2選擇不同的道路1.3擺脫重復(fù)的任務(wù)PART01前進(jìn)的向?qū)裁词橇鞒虉D1.1流程圖是對(duì)某一個(gè)問(wèn)題的定義、分析或解法的圖形表示,圖中用各種符號(hào)來(lái)表示操作、數(shù)據(jù)、流向及裝置等。程序流程圖則表示程序的運(yùn)行順序,是一種常用的表示算法的圖形化工具。換言之,程序流程圖就是通過(guò)畫(huà)圖的方式表達(dá)程序運(yùn)行的所有路徑,通過(guò)使用箭頭和框圖把程序運(yùn)行的方向與步驟展示出來(lái)。程序流程圖的基本符號(hào)1.2圖3-1程序流程圖中常用的符號(hào)程序流程圖的基本符號(hào)1.2(1)端點(diǎn)符表示算法的起始或結(jié)束。(2)判斷符用于對(duì)給定的條件進(jìn)行判斷,根據(jù)判斷的結(jié)果來(lái)選擇流程方向。它只有一個(gè)入口,可以有若干個(gè)出口,但有且僅有一個(gè)出口被激活。(3)處理符表示算法中的具體處理步驟。(4)流線符表示數(shù)據(jù)流,箭頭指示流向。(5)連接符用于連接因頁(yè)面寫(xiě)不下而斷開(kāi)的流程線,對(duì)應(yīng)的連接符應(yīng)有同一標(biāo)記。(6)注解符用來(lái)標(biāo)識(shí)注解內(nèi)容,它不是程序流程圖的必要部分,不反應(yīng)流程和操作,只是為了對(duì)流程圖中某些符號(hào)的操作進(jìn)行必要的補(bǔ)充說(shuō)明,以幫助讀者更好的理解。(7)數(shù)據(jù)符表示未指定媒體的數(shù)據(jù),可用于輸入和輸出,比較通用。程序流程圖還包括一些特殊的數(shù)據(jù)符,常用的有文件符、顯示符和人工輸入符。程序流程圖的基本符號(hào)1.2在程序設(shè)計(jì)中,包含了3種基本結(jié)構(gòu),即順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu),其流程圖如圖3-2所示。圖3-23種基本結(jié)構(gòu)的流程圖掃地機(jī)器人的工作流程圖1.3掃地機(jī)器人工作時(shí)傳感器會(huì)檢測(cè)前方、左邊和右邊是否有障礙物,并將檢測(cè)結(jié)果傳給掃地機(jī)器人進(jìn)行判斷。掃地機(jī)器人根據(jù)判斷結(jié)果規(guī)劃路徑,具體如下。(1)判斷前方是否有障礙物,如果沒(méi)有,則機(jī)器人前行;如果有,則進(jìn)行下一步判斷。(2)判斷左邊是否有障礙物,如果沒(méi)有,則機(jī)器人左轉(zhuǎn);如果有,則進(jìn)行下一步判斷。(3)判斷右邊是否有障礙物,如果沒(méi)有,則機(jī)器人右轉(zhuǎn);如果有,則后退。(4)循環(huán)執(zhí)行(1)~(3),直到機(jī)器人停止工作。掃地機(jī)器人的工作流程圖1.3圖3-3掃地機(jī)器人的工作流程圖PART02選擇不同的道路簡(jiǎn)單的if語(yǔ)句2.1if語(yǔ)句允許程序通過(guò)判斷條件是否成立而選擇是否執(zhí)行指定的語(yǔ)句。if語(yǔ)句的基本語(yǔ)法格式如下。if判斷條件:

語(yǔ)句塊if語(yǔ)句的執(zhí)行過(guò)程是:如果判斷條件為T(mén)rue,執(zhí)行語(yǔ)句塊,否則直接執(zhí)行if語(yǔ)句后的語(yǔ)句。例如:weather='晴' #創(chuàng)建變量weather代表天氣,賦值為“晴”ifweather=='晴': #如果天氣為晴print('去公園玩') #輸出“去公園玩”if-else語(yǔ)句2.2if語(yǔ)句只允許在條件為T(mén)rue時(shí)執(zhí)行指定的語(yǔ)句,而if-else語(yǔ)句還可在條件為False時(shí)執(zhí)行指定的語(yǔ)句,其基本語(yǔ)法格式如下。if判斷條件:

語(yǔ)句塊1else:

語(yǔ)句塊2上述語(yǔ)句的執(zhí)行過(guò)程是:當(dāng)判斷條件為T(mén)rue時(shí),執(zhí)行語(yǔ)句塊1,否則執(zhí)行語(yǔ)句塊2。if-else語(yǔ)句2.2【例3-1】

根據(jù)輸入的天氣選擇是否出門(mén)游玩?!緟⒖即a】weather=input('請(qǐng)輸入天氣情況:') #輸入變量weather的值ifweather=='晴'orweather=='多云': #如果天氣為晴或多云print('去公園玩') #輸出“去公園玩”else: #如果不是print('在家玩') #輸出“在家玩”【問(wèn)題分析】

本例題可使用if-else語(yǔ)句進(jìn)行條件判斷,如果輸入天氣為“晴”或“多云”,輸出“去公園玩”,否則輸出“在家玩”。if-else語(yǔ)句2.2【運(yùn)行結(jié)果】

程序運(yùn)行結(jié)果如圖3-4所示。圖3-4例3-1程序運(yùn)行結(jié)果if-elif-else語(yǔ)句2.3編程時(shí)常常需要判定一系列的條件,一旦其中某一個(gè)條件為T(mén)rue就立刻停止。此時(shí),可采用if-elif-else語(yǔ)句(elif是elseif的簡(jiǎn)寫(xiě)),其基本語(yǔ)法格式如下。if判斷條件1:

語(yǔ)句塊1elif判斷條件2:

語(yǔ)句塊2……elif判斷條件n:

語(yǔ)句塊nelse:

語(yǔ)句塊n+1if-elif-else語(yǔ)句2.3表3-1溫度和穿衣建議對(duì)照關(guān)系【例3-2】

根據(jù)輸入的溫度temperature給出穿衣建議,溫度和穿衣建議對(duì)照關(guān)系如表3-1所示。if-elif-else語(yǔ)句2.3【參考代碼】#輸入溫度temperature的值并將其轉(zhuǎn)化為浮點(diǎn)數(shù)temperature=float(input('請(qǐng)輸入溫度(℃):'))iftemperature>=28.0: #如果溫度大于等于28.0print('穿衣建議:輕棉織物制作的短衣、短裙、短褲等') #輸出穿衣建議eliftemperature>=24.0: #如果溫度大于等于24.0小于28.0print('穿衣建議:棉麻面料的襯衫、薄長(zhǎng)裙、薄T恤等') #輸出穿衣建議eliftemperature>=21.0: #如果溫度大于等于21.0小于24.0print('穿衣建議:?jiǎn)螌用蘼槊媪系腡恤衫、長(zhǎng)褲、薄牛仔褲等') #輸出穿衣建議eliftemperature>=18.0: #如果溫度大于等于18.0小于21.0print('穿衣建議:薄外套、風(fēng)衣、薄毛衣等') #輸出穿衣建議eliftemperature>=15.0: #如果溫度大于等于15.0小于18.0print('穿衣建議:風(fēng)衣、外套、毛衣等') #輸出穿衣建議eliftemperature>=11.0: #如果溫度大于等于11.0小于15.0print('穿衣建議:毛衣、風(fēng)衣、大衣等') #輸出穿衣建議eliftemperature>=6.0: #如果溫度大于等于6.0小于11.0print('穿衣建議:棉衣、冬大衣、薄羽絨服等') #輸出穿衣建議else: #以上條件都不滿足print('穿衣建議:羽絨服、厚棉衣、冬大衣等') #輸出穿衣建議if-elif-else語(yǔ)句2.3【運(yùn)行結(jié)果】

程序運(yùn)行結(jié)果如圖3-5所示。圖3-5例3-2程序運(yùn)行結(jié)果【程序說(shuō)明】

每個(gè)else本身都隱含了一個(gè)條件,如第1個(gè)elif實(shí)質(zhì)上表示條件24.0≤temperature<28.0成立,此隱含條件與對(duì)應(yīng)的if所給出的條件完全相反。在編程時(shí)要善于利用隱含條件,使程序代碼清晰簡(jiǎn)潔。嵌套的if語(yǔ)句2.4在if語(yǔ)句中又包含一個(gè)或多個(gè)if語(yǔ)句時(shí),稱為if語(yǔ)句的嵌套,其基本語(yǔ)法格式如下。if判斷條件1: if判斷條件2:

語(yǔ)句塊1 else:

語(yǔ)句塊2else: if判斷條件3:

語(yǔ)句塊3 else:

語(yǔ)句塊4嵌套的if語(yǔ)句2.4【例3-3】

分配任務(wù)。在社會(huì)實(shí)踐活動(dòng)中有三項(xiàng)任務(wù),分別是:種樹(shù)、采茶、打掃街道。依據(jù)小組人數(shù)及男生、女生人數(shù)決定小組的任務(wù),人數(shù)小于5的小組負(fù)責(zé)打掃街道,人數(shù)大于等于5且男生多于女生的小組負(fù)責(zé)種樹(shù),人數(shù)大于等于5且男生不多于女生的小組負(fù)責(zé)采茶。輸入小組男生、女生人數(shù),輸出小組接受的任務(wù)?!締?wèn)題分析】

本例題可使用嵌套的if語(yǔ)句實(shí)現(xiàn),程序流程圖如圖3-6所示。嵌套的if語(yǔ)句2.4圖3-6分配任務(wù)流程圖嵌套的if語(yǔ)句2.4【參考代碼】boy=int(input('請(qǐng)輸入男生人數(shù):')) #輸入男生人數(shù)并轉(zhuǎn)化為整數(shù)girl=int(input('請(qǐng)輸入女生人數(shù):')) #輸入女生人數(shù)并轉(zhuǎn)化為整數(shù)total=boy+girl #計(jì)算總?cè)藬?shù)iftotal<5: #如果總?cè)藬?shù)小于5print('打掃街道') #輸出“打掃街道”else: #如果總?cè)藬?shù)大于等于5ifboy>girl: #如果男生人數(shù)大于女生人數(shù)print('種樹(shù)') #輸出“種樹(shù)”else: #如果男生人數(shù)小于等于女生人數(shù)print('采茶') #輸出“采茶”嵌套的if語(yǔ)句2.4【運(yùn)行結(jié)果】

程序運(yùn)行結(jié)果如圖3-7所示。圖3-7例3-3程序運(yùn)行結(jié)果PART03擺脫重復(fù)的任務(wù)while語(yǔ)句3.1while循環(huán)語(yǔ)句的基本語(yǔ)法格式如下。while判斷條件:

語(yǔ)句塊 #循環(huán)體上述語(yǔ)句的執(zhí)行過(guò)程是:當(dāng)判斷條件為T(mén)rue時(shí),執(zhí)行循環(huán)體;接著再次判斷條件,如果為T(mén)rue,繼續(xù)執(zhí)行循環(huán)體;如此反復(fù),直到判斷條件為False時(shí)結(jié)束循環(huán),執(zhí)行while語(yǔ)句后的語(yǔ)句。while語(yǔ)句3.1【例3-4】

輸入一個(gè)整數(shù)n,求S=1+2+3+…+n的值?!締?wèn)題分析】

本例題可使用循環(huán)結(jié)構(gòu)來(lái)實(shí)現(xiàn)。重復(fù)執(zhí)行循環(huán)體n次,每次加一個(gè)數(shù)。繼續(xù)分析發(fā)現(xiàn),每次累加的數(shù)是有規(guī)律的,后一個(gè)數(shù)是前一個(gè)數(shù)加1。因此,只需在加完上一個(gè)數(shù)i后,使i加1就可得到下一個(gè)數(shù)。【參考代碼】n=int(input('請(qǐng)輸入一個(gè)整數(shù):')) #輸入n的值,并轉(zhuǎn)化為整數(shù)i=1 #創(chuàng)建變量i,賦值為1S=0 #創(chuàng)建變量S,賦值為0whilei<=n: #循環(huán),當(dāng)i>n時(shí)結(jié)束S+=i #求和,將結(jié)果賦給Si+=1 #變量i加1print('S=1+2+3+…+n=',S) #輸出S的值while語(yǔ)句3.1【運(yùn)行結(jié)果】

程序運(yùn)行結(jié)果如圖3-8所示。圖3-8例3-4程序運(yùn)行結(jié)果在使用while語(yǔ)句時(shí),需要注意以下兩點(diǎn)。(1)變量初始化描述要完整、準(zhǔn)確。(2)在循環(huán)體中應(yīng)有使循環(huán)趨于結(jié)束的語(yǔ)句。for語(yǔ)句3.21.基本語(yǔ)法格式for語(yǔ)句的基本語(yǔ)法格式如下。for變量in序列:

語(yǔ)句塊 #循環(huán)體上述語(yǔ)句的執(zhí)行過(guò)程是:如果序列中包含表達(dá)式,則先進(jìn)行求值計(jì)算;然后,序列中的第一個(gè)元素賦給變量,執(zhí)行循環(huán)體;接著序列中的第二個(gè)元素賦給變量,執(zhí)行循環(huán)體;依此類(lèi)推,直到序列中最后一個(gè)元素賦給變量,執(zhí)行循1環(huán)體后for循環(huán)結(jié)束,執(zhí)行for語(yǔ)句后的語(yǔ)句。for語(yǔ)句3.21.基本語(yǔ)法格式例如,使用for循環(huán)輸出字符串“python”中的每一個(gè)字符,可使用下面代碼實(shí)現(xiàn)。forxin'python':print(x)上述代碼運(yùn)行結(jié)果如圖3-9所示。圖3-9for循環(huán)輸出字符串“python”中的每一個(gè)字符for語(yǔ)句3.22.range()函數(shù)for語(yǔ)句經(jīng)常與range()函數(shù)一起使用,range()函數(shù)是Python的內(nèi)置函數(shù),可創(chuàng)建一個(gè)整數(shù)列表。range()函數(shù)的語(yǔ)法格式如下。range([start,]stop[,step])(1)start:計(jì)數(shù)從start開(kāi)始,默認(rèn)為0。例如,range(5)等價(jià)于range(0,5)。(2)stop:計(jì)數(shù)到stop結(jié)束,但不包括stop。例如,range(0,5)是[0,1,2,3,4]。(3)step:步長(zhǎng),默認(rèn)為1。例如,range(0,5)等價(jià)于range(0,5,1)。for語(yǔ)句3.22.range()函數(shù)【例3-5】

雞兔同籠。大約在1500年前,《孫子算經(jīng)》中記載:“今有雉兔同籠,上有三十五頭,下有九十四足,問(wèn)雉兔各幾何?”編程計(jì)算雞和兔的數(shù)量并輸出。【問(wèn)題分析】根據(jù)題意設(shè)雞和兔的數(shù)量分別為cock和rabbit,如果籠中全部是雞,雞的最大數(shù)量為35,所以cock在0~35取值,且rabbit=35?cock。確定了雞的范圍后進(jìn)行窮舉并判斷,由于雞有兩只腳,兔有4只腳,所以判斷條件為雞和兔的腳的總數(shù)量為94?!緟⒖即a】forcockinrange(0,35+1): #循環(huán)范圍為0~35,cock表示雞的數(shù)量rabbit=35-cock #計(jì)算兔的數(shù)量ifcock*2+rabbit*4==94: #如果雞和兔的腳的總數(shù)為94print('雞有',cock,'只') #輸出雞的數(shù)量print('兔有',rabbit,'只') #輸出兔的數(shù)量for語(yǔ)句3.22.range()函數(shù)【運(yùn)行結(jié)果】

程序運(yùn)行結(jié)果如圖3-10所示。圖3-10例3-5程序運(yùn)行結(jié)果嵌套的循環(huán)語(yǔ)句3.3一個(gè)循環(huán)語(yǔ)句的循環(huán)體內(nèi)包含另一個(gè)完整的循環(huán)結(jié)構(gòu),稱為循環(huán)的嵌套。嵌套在循環(huán)體內(nèi)的循環(huán)稱為內(nèi)循環(huán),嵌套有內(nèi)循環(huán)的循環(huán)稱為外循環(huán)。內(nèi)循環(huán)中還可以嵌套循環(huán),這就是多重循環(huán)。while語(yǔ)句和for語(yǔ)句可以互相嵌套,自由組合。外層循環(huán)體中可以包含一個(gè)或多個(gè)內(nèi)層循環(huán)結(jié)構(gòu),但要注意的是,各循環(huán)必須完整包含,相互之間不允許有交叉現(xiàn)象。嵌套的循環(huán)語(yǔ)句3.3【例3-6】

輸出下面九九乘法表。1*1=11*2=22*2=41*3=32*3=63*3=91*4=42*4=83*4=124*4=16…………1*9=92*9=183*9=274*9=36……9*9=81【問(wèn)題分析】該問(wèn)題可使用for語(yǔ)句的循環(huán)嵌套來(lái)實(shí)現(xiàn),外循環(huán)控制行,內(nèi)循環(huán)控制列。嵌套的循環(huán)語(yǔ)句3.3【參考代碼】forxinrange(1,10): #循環(huán)變量x從1到9foryinrange(1,x+1): #循環(huán)變量y從1到xprint(y,'*',x,'=',x*y,'',end='') #輸出乘法表達(dá)式

print('') #輸出空字符串,換行【運(yùn)行結(jié)果】

程序運(yùn)行結(jié)果如圖3-11所示。圖3-11例3-6程序運(yùn)行結(jié)果break和continue語(yǔ)句3.4【例3-7】

身份驗(yàn)證。循環(huán)判斷用戶輸入的賬號(hào)和密碼是否正確,如果正確則退出。1.

break語(yǔ)句【問(wèn)題分析】

首先設(shè)定用戶的正確賬號(hào)和密碼;然后使用while循環(huán),在循環(huán)中,輸入賬號(hào)和密碼,如果都正確則輸出登錄成功并跳出循環(huán),否則輸出賬號(hào)或密碼輸入有誤,繼續(xù)循環(huán)。break和continue語(yǔ)句3.41.

break語(yǔ)句【參考代碼】name='python' #創(chuàng)建變量name表示正確賬號(hào)password='12345678' #創(chuàng)建變量password表示正確密碼whileTrue: #循環(huán)name_input=input('請(qǐng)輸入賬號(hào):') #輸入賬號(hào)password_input=input('請(qǐng)輸入密碼:') #輸入密碼ifname!=name_input: #如果賬號(hào)不正確print('輸入的賬號(hào)有誤!') #輸出賬號(hào)有誤elifpassword!=password_input: #如果密碼不正確print('輸入的密碼有誤!') #輸出密碼有誤else: #如果賬號(hào)和密碼都正確print('登錄成功!') #輸出登錄成功break #跳出循環(huán)break和continue語(yǔ)句

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論