資源簡介 (共29張PPT)4.4運用循環結構描述問題求解過程高中信息技術必修1新知導入本節主要內容:1、for循環的應用。2、while循環的應用。3、循環嵌套的應用。4、循環控制的應用。新知講解4.4.1for循環的應用新知講解格式:for循環變量in列表:語句或語句組注意:1、for循環依次把列表中的每個元素逐個迭代出來2、冒號“:”代表下一行是循環的第一行,循環體在書寫時需要縮進新知講解for循環列表的表達方式:(1)直接羅列的方式。如:forvaluein[1,2,3,4,5]:(2)先定義后使用的方式。如:values=[1,2,3,4,5]forvalueinvalues:(3)使用range()函數,注意:①range函數從第一個值開始到第二個值止(不包括第二個值)。②可指定步長。③數值列表可以是降序。新知講解for循環流程圖執行過程:當判定條件滿足時,重復執行代碼段,否則結束循環,跳轉出循環體。課堂練習【例】寫出下列程序的輸出結果。forletterin("Python"):print("當前字母:",letter)課堂練習【例】寫出下列程序的輸出結果。fruits=['banana','apple','mango']forfruitinfruits:print("當前水果:",fruit)print("Goodbye!")課堂練習【例】計算斐波那契數列的前30項之和。斐波那契數列:1,1,2,3,5,8,13,21,34,55,.….提示:除了前兩項,后面的每一項是其前兩項之和。a=b=1s=2forninrange(3,30):t=aa=bb=t+as=s+bprint(s)新知講解4.4.2while循環的應用新知講解格式:while(表達式):語句或語句組注意:(1)表達式一般是一個關系表達式或一個邏輯表達式,表達式的值應該是一個邏輯值真(True)或假(False)(2)每次循環都是執行完循環體語句后回到表達式處重新開始判斷,重新計算表達式的值。一旦表達式的值為假就退出循環,為真時就繼續執行循環體語句。(3)循環體中必須有改變條件表達式值的語句,否則將成為死循環。新知講解執行過程:當表達式的值為真時,執行循環體語句;當表達式的值為假時,退出循環,執行循環體外的下一條語句(即while后面沒有縮進的第一條語句)。上條語句表達式?循環語句下條語句NY課堂練習【例】寫出下列程序的輸出結果。i=1whilei<7:print(i)i+=1課堂練習【例】寫出下列程序的輸出結果。i=1whilei<7:print(i)i+=2PS:通過修改步長可以的到不同的結果課堂練習【例】寫出下列程序的輸出結果。i=1whilei<6:print(i)i+=1else:print("i已經比6大")新知講解4.4.3循環嵌套的應用新知講解循環嵌套的定義:在一個循環體內又包含另一個循環。嵌套可以分為多層,每一層循環在邏輯上必須是完整的。在編寫程序代碼時,循環嵌套的書寫要采用縮進形式,內循環中的語句應該比外規律地向右縮進4列。循環嵌套的作用:解決復雜的問題。新知講解循環嵌套的執行過程:(1)當外層循環條件為True時,則執行外層循環結構中的循環體;(2)外層循環體中包含了普通程序和內循環,當內層循環的循環條件為True時會執行此循環中的循環體,直到內層循環條件為False,跳出內循環;(3)如果此時外層循環的條件仍為True,則返回第2步,繼續執行外層循環體,直到外層循環的循環條件為False;(4)當內層循環的循環條件為False,且外層循環的循環條件也為False,則整個嵌套循環才算執行完畢。課堂練習例:實現九九乘法表。方法一:for實現forrowinrange(1,10):forcolinrange(1,row+1):print('{}{}={}'.format(col,row,colrow),end='\t')print()課堂練習例:實現九九乘法表。方法二:while實現row=1whilerow<10:col=1whilecol<=row:print('{}{}={}'.format(col,row,colrow),end='\t')#見for循環的分析col+=1print()#換行row+=1#內循環結束,外循環加一課堂練習例:求所有水仙花數。水仙花數是指一個三位數,其個位、十位、百位3個數字的立方和等于這個數本身(for循環中嵌入if語句)。foriinrange(100,1000):a=i%10#個位b=int(i%100/10)#十位c=int(i/100)#百位if(aaa+bbb+ccc==i):print("水仙花數為:",i)foriinrange(1000,10000):a=i%10#個位b=int(i%100/10)#十位c=int(i/100)#百位if(aaa+bbb+ccc==i):print("水仙花數為:",i)新知講解循環類型對比while循環在給定的判斷條件為true時執行循環體,否則退出循環體。for循環重復執行語句嵌套循環在循環體中再嵌套循環循環類型對比新知講解4.4.4循環控制的應用新知講解循環控制的作用:循環控制包含控制循環變量的變化方式和控制循環的跳轉,簡單地說循環控制語句可以更改語句執行的順序。控制語句描述break語句在語句塊執行過程中終止循環,并且跳出整個循環continue語句在語句塊執行過程中終止當前循環,跳出該次循環,執行下一次循環。pass語句pass是空語句,是為了保持程序結構的完整性。新知講解【例】break實例應用。forletterin'Python':ifletter=='h':breakprint('當前字母:',letter)新知講解【例】continue實例應用。forletterin'Python':ifletter=='h':continueprint('當前字母:',letter)新知講解【例】pass實例應用。#輸出Python的每個字母forletterin'Python':ifletter=='h':passprint('這是pass塊')print('當前字母:',letter)print("Goodbye!")謝謝21世紀教育網(www.21cnjy.com)中小學教育資源網站有大把高質量資料?一線教師?一線教研員?歡迎加入21世紀教育網教師合作團隊!!月薪過萬不是夢!!詳情請看:https://www.21cnjy.com/help/help_extract.php中小學教育資源及組卷應用平臺4.4運用循環結構描述問題求解過程一、選擇題1、關于for循環和while循環的說法哪個正確()A、while循環先判斷后執行,for循環先執行后判斷。B、while循環判斷條件一般是程序結果,for循環的判斷條件一般是非程序結果C、兩種循環任何時候都不可以替換D、兩種循環結構中都必須有循環體,循環體不能為空2、執行以下程序得到的結果是()i=-1?while(i<0):i=i+1?print(i)?A、-1B、0C、1D、i3、有以下程序段:sum=1foriinrange(1,5):sum=sumiprint(sum,i)程序的運行結果為()。A、245B、1205C、244D、12044、下列循環結構用法錯誤的是()A、foriinrange(20):B、foriinrange(0,10):C、foriinrange(10,0,2):D、whiles<50:5、若k為整型,下列while循環執行的次數為()k=1000whilek>1:print(k)k=k/2A、9B、10C、11D、1006、執行下列程序以后i的值是()foriinrange(-3,-21,-4):print(i,end="")print(end="\n")A、-3B、-4C、-19D、-217、下面的代碼,哪些會輸出1,2,3,三個數字()A、foriinrange(3):Print(i)0,1,2B、aList=[1,2,3]foriinaList:print(i+1)2,3,4C、i=1whilei<3:print(i)1,2i+=1D、foriinrange(3):Print(i+1)1,2,38、python中表示跳出循環的函數是()A、continueB、breakC、ESCD、close9、以下程序要求輸出偶數,則在空白處的語句為()import?math?def?func(list):?????for?x?in?list:?????????if(_______):?print(x)??A、x%2==0???B、x%2????C、x?is?even????D、x/210、14.下面的語句哪個會無限循環下去()A、forainrange(10):time.sleep(10)B、while1<10:time.sleep(10)C、whileTrue:breakD、a=[3,-1,’,’]forIina[:]:ifnota:break二、編程題1、使用for循環輸出1234568910。(注意:數字6和數字8之間,跳過了數字7。)2、求1-100的所有數的和。3、求1-2+3-4+5...99的所有數的和。4、模擬銀行用戶密碼登陸(三次機會重試)。(注意:默認賬號為cgc,密碼123。)5、猜年齡游戲。要求:允許用戶最多嘗試3次,每嘗試3次后,如果還沒猜對,就問用戶是否還想繼續玩,如果回答Y或y,就繼續讓其猜3次,以此往復,如果回答N或n,就退出程序,如果猜對了,就直接退出。6、使用循環語句打印如下金字塔:。試題答案一、選擇題12345678910BBCCBCDBAB解析:1、for循環執行末尾循環體后將再次進行條件判斷,若條件還成立,則繼續重復上述循環,當條件不成立時則跳出當下for循環。while循環當滿足條件時進入循環,進入循環后,當條件不滿足時,執行完循環體內全部語句后再跳出(而不是立即跳出循環)。2、i的初值是-1,while(i<0)當i小于0的時候執行i=i+1=0,所以選B。3、range(1,5)所以i的取值從1到4,sum=sumi表示i的累乘積,也就是1234=24,所以結果sum=24,i=4,選C。4、range(10,0,2):,步長的值要改為負值range(10,0,-2):,表示從10開始到0結束,但是不包括0,每次減少步長為2。5、當k>1的時候,程序會一直執行下去,每次將k的值減半,因為k為整型所以依次為1000,500,250,125,62,31,15,7,3,1,共計10次。6、因為for循環變量inrange(start,stop[,step]):,所以foriinrange(-3,-21,-4):表示從-3開始到-21結束(不包含-21),步長為-4,執行結果為-3-7-11-15-19,因此i的值最后為-19。7、A執行結果是0,1,2;B執行結果是2,3,4,C執行結果是1,2,D執行結果是range(3)從1開始每次i+1,所以結果是1,2,3。8、break語句功能是:在語句塊執行過程中終止循環,并且跳出整個循環。9、x%2==0表示x除以2的余數是0,也就是該數為偶數。10、循環條件while1<10恒為真,所以此循環會無限循環。二、編程題解析:1、foriinrange(10):ifi==6:print('',end='')continueprint(i+1,end="")2、s=0foriinrange(101):s+=iprint(s)3、s=0print(-149+99)s=0foriinrange(100):ifi%2==0:s-=ielse:s+=iprint(s)4、km=float(input("請輸入千米數:"))ifkm<=0:print("千米數輸入錯誤,重新輸入")elifkm<=3:print("您需要支付10元車費")elifkm<=10:cost=10+(km-3)1.2print("您需要支付{:.1f}元車費".format(cost))else:cost=18.4+(km-10)1.5print("您需要支付{:.1f}元車費".format(cost))5、importrandomrand=random.randint(1,18)now='y'whilenow=='y'ornow=='Y':foriinrange(3):a=int(input('請輸入要猜的年齡:'))ifa==rand:print('猜對了')rand=random.randint(1,18)breakelifa:print('猜小了')elifa>rand:print('猜大了')now=input('是否繼續玩y/n?')6、方法一:while循環實現current_level=1max_level=5whilecurrent_level<=max_level:print(''(max_level-current_level),end='')print(''(2current_level-1))current_level+=1方法二:for循環實現a=5foriinrange(a):print(''(a-1-i)+''(i+1)+''i)PS:自己指定金字塔的層數代碼如下。a=int(input('請輸入層數:'))foriinrange(a):print(''(a-1-i)+''(i+1)+''i)21世紀教育網www.21cnjy.com精品試卷·第2頁(共2頁)HYPERLINK"http://21世紀教育網(www.21cnjy.com)"21世紀教育網(www.21cnjy.com) 展開更多...... 收起↑ 資源列表 4.4運用循環結構描述問題求解過程.doc 4.4運用循環結構描述問題求解過程.pptx 縮略圖、資源來源于二一教育資源庫