資源簡介 (共20張PPT)2.3.3 語句與程序結(jié)構(gòu)之循環(huán)結(jié)構(gòu)人教/中圖版 必修一《數(shù)據(jù)與計(jì)算》t 15While t>=1output tsleep 1scleart t-1End while倒計(jì)時15S循環(huán)結(jié)構(gòu)在循環(huán)結(jié)構(gòu)中,一些語句在某一條件成立時,被重復(fù)執(zhí)行,直到條件不成立時,才結(jié)束重復(fù)執(zhí)行。這個條件稱為循環(huán)控制條件,被重復(fù)執(zhí)行的語句塊稱為循環(huán)體。Python語言使用兩種基本的循環(huán)結(jié)構(gòu)語句:while語句和for語句。1.while 語句while 表達(dá)式:語句塊說明:1)表達(dá)式是循環(huán)控制條件,結(jié)果是真(True)或假(False)。2)冒號不能省略功能:當(dāng)表達(dá)式的結(jié)果為真(True)時,則執(zhí)行語句塊(循環(huán)體),否則就退出循環(huán)。While語句的基本格式為:例如,“倒計(jì)時15秒”,功能實(shí)現(xiàn)的#倒計(jì)時15程序代碼實(shí)現(xiàn):import turtleimport timetext=turtle.Turtle()text.hideturtle()i=15while i>=1:text.write(i,font=("黑體",14,"normal"))time.sleep(1)text.clear()i=i-1Python語言中的模塊Pyhon語言中的模塊是一個程序文件(擴(kuò)展名是py),它將程序代碼和數(shù)據(jù)封裝起來。編寫程序時,要先導(dǎo)入所需的模塊,然后就可以在程序中調(diào)用試模塊中的函數(shù)等。導(dǎo)入模塊一般寫在程序的開始位置,其基本格式為:import模塊名Python語言內(nèi)置了許多模塊,常用的有:1.turtle模塊。turtle模塊可用于繪制圖形。例如,“體驗(yàn)探索”中繪制的紅燈和綠燈,就是通過導(dǎo)入turle模塊,利用其中的函數(shù)Circle繪制圓形2.time模塊。ime模塊主要用于處理時間,其中提供了一系列的控制時間的函數(shù),如sleep(n)實(shí)現(xiàn)讓程序在該語句位置休眠時間為n(單位為s),即延時n后再執(zhí)行下一條語句。3.math模塊。math模塊可用于數(shù)學(xué)運(yùn)算,如平方根、指數(shù)、對數(shù)和三角函數(shù)的運(yùn)算等。由于問題解決的復(fù)雜性和獨(dú)特性,當(dāng)內(nèi)置模塊不能滿足需要時,也可使用第三方模塊或者自行開發(fā)斯模塊。在使用第三方模塊之前,需要通過包管理工具pip進(jìn)行模塊安裝。技術(shù)支持for 循環(huán)變量 in 序列:語句塊for語句的基本格式為:2.for語句功能:從序列中取出第一個元素賦值給循環(huán)變量,執(zhí)行語句塊,再從序列中取出第二個元素賦值給循環(huán)變量,執(zhí)行語句塊,依次類推,直到將序列中所有元素賦值給循環(huán)變量結(jié)束后,循環(huán)結(jié)束。說明:1)for和in是成對出現(xiàn),二者都不可省略2)冒號不可省略3)注意語句塊的位置,不可for對齊。4)序列可以使用range()設(shè)置,例如倒計(jì)時15秒案例,如下:技術(shù)支持For語句中的序列1.在pyhton語言中,可以使用函數(shù)range()返回一個等差整數(shù)序列,格式為:range(起始值,終值,步長)。需要注意的是,生成的這個整數(shù)序列不包括終值,并且起始值和步長(序列中相鄰兩個元素之間的差)可以缺省,缺省時分別為0和1,如下表所示:函數(shù)rangge()舉例 功能說明range(1,5,2) 生成從1至5(不包含5),間隔2的連續(xù)遞增的等差整數(shù)序列1,3range(1,5) 生成從1至5(不包含5),間隔1的連續(xù)遞增的等差整數(shù)序列1,2,3,4range(5) 生成從0至5(不包含5),間隔1的連續(xù)遞增的等差整數(shù)序列0,1,2,3,4range(5,1,-1) 生成從5至1(不包含1),間隔1的連續(xù)遞減的等差整數(shù)序列5,4,3,22.在for語句中還可以直接使用列表等序列。例如:names=["張明","王麗","李剛","唐華"]for name in names:print(name)運(yùn)行結(jié)果如右:技術(shù)支持例如,“倒計(jì)時15秒”,功能實(shí)現(xiàn)的#倒計(jì)時15程序代碼實(shí)現(xiàn):import turtleimport timetext=turtle.Turtle()text.hideturtle()i=15for i range( , , ):text.write(i,font=("黑體",14,"normal"))time.sleep(1)text.clear()i=i-1in150-1循環(huán)結(jié)構(gòu)——for語句3.循環(huán)嵌套一個循環(huán)結(jié)構(gòu)內(nèi)可以包含另一個循環(huán),這樣的結(jié)構(gòu)稱為循環(huán)嵌套,也稱多重循環(huán)。常用的循環(huán)嵌套是二重循環(huán),外層循環(huán)稱為外循環(huán),內(nèi)層循環(huán)稱為內(nèi)循環(huán)。內(nèi)循環(huán)是外循環(huán)的循環(huán)體。循環(huán)嵌套的執(zhí)行過程是要首先執(zhí)行外層循環(huán),外循環(huán)每執(zhí)行一次,內(nèi)循環(huán)則需執(zhí)行一個完整的循環(huán)。循環(huán)結(jié)構(gòu)——for語句例如,輸出顯示“九九乘法表”,程序示例如下:#外循環(huán)for i in range(1, 10):#內(nèi)循環(huán)for j in range(1, i + 1):#通過end=""設(shè)置函數(shù)print()不輸出換行符print(i,"*",j,"=",i*j,"\t",end ="")#設(shè)置換行操作(函數(shù)print()不輸出任何字符,只進(jìn)行換行)print()給定字符串或制表符結(jié)尾,但是不默認(rèn)換行循環(huán)結(jié)構(gòu)——for語句循環(huán)結(jié)構(gòu)——for語句4.break語句和continue語句在循環(huán)體中,可以使用break語句和continue語句控制程序的流程。break語句:用于終止某個循環(huán),使程序跳到該循環(huán)結(jié)構(gòu)之外的第一個可執(zhí)行語句;continue 語句:用于終止本次循環(huán)進(jìn)入下一次循環(huán),即跳過循環(huán)體內(nèi)還未執(zhí)行的語句,進(jìn)入下一次循環(huán)的判定。小于60分,等級為E;大于等于60分且小于70分,等級為D;大于等于70分且小于80分,等級為C;大于等于80分且小于90分,等級為B;大于等于90分,等級為A。n=float(input("請輸入分?jǐn)?shù):"))if n <60:print("等級為E")elif n<70:print("等級為D")elif n<80:print("等級為C")elif n<90:print("等級為B")else:print("等級為A“)例如 編寫一個程序,從鍵盤輸入分?jǐn)?shù)后,輸出此分?jǐn)?shù)所屬等級。while True:n=float(input("請輸入分?jǐn)?shù):"))if n <60:print("等級為E")elif n<70:print("等級為D")elif n<80:print("等級為C")elif n<90:print("等級為B")else:print("等級為A")4.break語句和 continue語句break語句功能:用于終止某個循環(huán),使程序跳到該循環(huán)結(jié)構(gòu)之外的第一個可執(zhí)行語句;num=0for i in range(1,5):print ("進(jìn)入第",i,"次循環(huán),i=",i)if i==3:breaknum=num+1print("num",num)示例1num=0for i in range(1,5):print("進(jìn)入第",i,"次循環(huán),i=",i)if i==3:continuenum=num+1print("num",num)示例2continue語句的功能:用于終止本次循環(huán)進(jìn)入下一次循環(huán),即跳過循環(huán)體內(nèi)還未執(zhí)行的語句,進(jìn)入下一次循環(huán)的判定。小于60分,等級為E;大于等于60分且小于70分,等級為D;大于等于70分且小于80分,等級為C;大于等于80分且小于90分,等級為B;大于等于90分,等級為A。n=float(input("請輸入分?jǐn)?shù):"))if n <60:print("等級為E")elif n<70:print("等級為D")elif n<80:print("等級為C")elif n<90:print("等級為B")else:print("等級為A“)例如 編寫一個程序,從鍵盤輸入分?jǐn)?shù)后,輸出此分?jǐn)?shù)所屬等級。while True:n=float(input("請輸入分?jǐn)?shù):"))if n <60:print("等級為E")elif n<70:print("等級為D")elif n<80:print("等級為C")elif n<90:print("等級為B")else:print("等級為A")str1=input("是/否(n/N)繼續(xù)輸入成績:")if str1=="n" or str1=="N":breakelse:continue實(shí)踐活動編寫完整的體重指數(shù)“計(jì)算器”我們已經(jīng)編程實(shí)現(xiàn)對高一年級學(xué)生體重指數(shù)的計(jì)算和等級判定,但該程序運(yùn)行一次只能處理一名學(xué)生的信息。試?yán)^續(xù)完善程序功能,編寫一個完整的體重指數(shù)計(jì)算小程序,實(shí)現(xiàn)對多名學(xué)生進(jìn)行體重指數(shù)的等級判斷。1.要實(shí)現(xiàn)多次判定高一學(xué)生體重指數(shù)等級的程序功能,應(yīng)如何設(shè)置循環(huán)條件?該循環(huán)的次數(shù)是否固定?如何結(jié)束該 循環(huán)。2.畫出該 問題求解流程圖,并編程實(shí)現(xiàn)。THANKS 展開更多...... 收起↑ 資源預(yù)覽 縮略圖、資源來源于二一教育資源庫