Python程序設(shè)計(jì)入門與實(shí)戰(zhàn) 課件 4、Python程序控制結(jié)構(gòu)_第1頁
Python程序設(shè)計(jì)入門與實(shí)戰(zhàn) 課件 4、Python程序控制結(jié)構(gòu)_第2頁
Python程序設(shè)計(jì)入門與實(shí)戰(zhàn) 課件 4、Python程序控制結(jié)構(gòu)_第3頁
Python程序設(shè)計(jì)入門與實(shí)戰(zhàn) 課件 4、Python程序控制結(jié)構(gòu)_第4頁
Python程序設(shè)計(jì)入門與實(shí)戰(zhàn) 課件 4、Python程序控制結(jié)構(gòu)_第5頁
已閱讀5頁,還剩58頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

Python程序控制結(jié)構(gòu)《智能車Python編程設(shè)計(jì)》Python程序控制結(jié)構(gòu)流程控制對(duì)于任何一門編程語言來說都是至關(guān)重要的,它提供了控制程序如何執(zhí)行的方法。如果沒有控制語句,整個(gè)程序?qū)凑枕樞蛞来螆?zhí)行,而不能根據(jù)用戶的需求決定程序執(zhí)行的順序。本章將詳細(xì)介紹Python中的流程控制內(nèi)容,其中包含程序的三種控制結(jié)構(gòu)、程序流程圖、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)等等。最后通過一系列的實(shí)例和項(xiàng)目實(shí)戰(zhàn)幫助讀者掌握Python編程語言中的流程控制語句。課程大綱基本的程序結(jié)構(gòu)程序的流程圖程序的基本結(jié)構(gòu)分支結(jié)構(gòu)單分支結(jié)構(gòu):if語句二分支結(jié)構(gòu):if…else語句多分支結(jié)構(gòu):if…elif…else語句if語句的嵌套pass語句循環(huán)結(jié)構(gòu)無限循環(huán):while語句遍歷循環(huán):for語句循環(huán)嵌套循環(huán)保留字:break和continuerandom庫的使用random庫的概述random庫的解析程序的基本結(jié)構(gòu)程序的基本結(jié)構(gòu)三種控制結(jié)構(gòu)程序流程圖程序的基本結(jié)構(gòu)程序的流程圖程序流程圖用一系列圖形、流程線和文字說明描述程序的基本操作和控制流程,它是程序分析和過程描述的最基本方式。流程圖的基本元素包括7種:程序的基本結(jié)構(gòu)流程圖的基本元素匯總程序的基本結(jié)構(gòu)程序流程圖示例:由連接點(diǎn)A連接的一個(gè)程序

程序的基本結(jié)構(gòu)程序流程圖示例程序的基本結(jié)構(gòu)程序的基本結(jié)構(gòu)順序結(jié)構(gòu)是程序的基礎(chǔ),但單一的順序結(jié)構(gòu)不可能解決所有問題。程序由三種基本結(jié)構(gòu)組成:順序結(jié)構(gòu)分支結(jié)構(gòu)(選擇)循環(huán)結(jié)構(gòu)這些基本結(jié)構(gòu)都有一個(gè)入口和一個(gè)出口。任何程序都由這三種基本結(jié)構(gòu)組合而成。程序的基本結(jié)構(gòu)順序結(jié)構(gòu)是程序按照線性順序依次執(zhí)行的一種運(yùn)行方式,其中語句塊1和語句塊2表示一個(gè)或一組順序執(zhí)行的語句。程序的基本結(jié)構(gòu)分支結(jié)構(gòu)是程序根據(jù)條件判斷結(jié)果而選擇不同向前執(zhí)行路徑的一種運(yùn)行方式,包括單分支結(jié)構(gòu)和二分支結(jié)構(gòu)。由二分支結(jié)構(gòu)會(huì)組合形成多分支結(jié)構(gòu)。程序的基本結(jié)構(gòu)循環(huán)結(jié)構(gòu)是程序根據(jù)條件判斷結(jié)果向后反復(fù)執(zhí)行的一種運(yùn)行方式,根據(jù)循環(huán)體觸發(fā)條件不同,包括條件循環(huán)和遍歷循環(huán)結(jié)構(gòu)。程序的基本結(jié)構(gòu)對(duì)于一個(gè)計(jì)算問題,可以用IPO描述---->流程圖描述或者直接以Python代碼方式描述。示例:求圓的周長(zhǎng)和面積步驟1:(I)輸入:圓半徑R(P)處理:圓面積:S=π*R*R圓周長(zhǎng):L=2*π*R(O)輸出:圓面積S、周長(zhǎng)LR=eval(input("請(qǐng)輸入圓半徑:"))S=3.1415*R*RL=2*3.1415*Rprint("面積和周長(zhǎng):",S,L)問題IPO描述流程圖描述Python代碼描述程序的基本結(jié)構(gòu)IPO描述主要用于區(qū)分程序的輸入輸出關(guān)系,重點(diǎn)在于結(jié)構(gòu)劃分,算法主要采用自然語言描述流程圖描述側(cè)重于描述算法的具體流程關(guān)系,流程圖的結(jié)構(gòu)化關(guān)系相比自然語言描述更進(jìn)一步,有助于闡述算法的具體操作過程Python代碼描述是最終的程序產(chǎn)出,最為細(xì)致。程序的基本結(jié)構(gòu)練習(xí)用三種描述方法表示以下問題1.實(shí)數(shù)絕對(duì)值的計(jì)算。-33-102.求1+2+3+…+100的和。IPO問題描述、流程圖描述不寫程序,用IPO、程序流程圖分支結(jié)構(gòu)分支結(jié)構(gòu)單分支結(jié)構(gòu):if語句Python中if語句的語法格式如下:if表達(dá)式:

語句塊語句塊是if條件滿足后執(zhí)行的一個(gè)或多個(gè)語句序列語句塊中語句通過與if所在行形成縮進(jìn)表達(dá)包含關(guān)系if語句首先評(píng)估<條件>的結(jié)果值,如果結(jié)果為True,則執(zhí)行語句塊里的語句序列,然后控制轉(zhuǎn)向程序的下一條語句。如果結(jié)果為False,語句塊里的語句會(huì)被跳過。分支結(jié)構(gòu)if語句中語句塊執(zhí)行與否依賴于條件判斷。但無論什么情況,控制都會(huì)轉(zhuǎn)到if語句后與該語句同級(jí)別的下一條語句

if語句的控制流程圖

分支結(jié)構(gòu)if語中<條件>部分可以使用任何能夠產(chǎn)生True或False的語句形成判斷條件最常見的方式是采用關(guān)系操作符Python語言共有6個(gè)關(guān)系操作符操作符數(shù)學(xué)符號(hào)操作符含義<<小于<=≤小于等于>=≥大于等于>>大于===等于!=≠不等于分支結(jié)構(gòu)示例1:輸入一個(gè)整數(shù)判讀該整數(shù)是否大于6,若大于6,輸出該整數(shù)大于6;否則直接退出。a=input(“請(qǐng)輸入一個(gè)整數(shù):”)a=int(a)ifa>6: print(a,“大于6”)分支結(jié)構(gòu)二分支結(jié)構(gòu):if…

else語句Python中if-else語句用來形成二分支結(jié)構(gòu),語法格式如下:if表達(dá)式:

語句塊1else:

語句塊2<語句塊1>是在if條件滿足后執(zhí)行的一個(gè)或多個(gè)語句序列<語句塊2>是if條件不滿足后執(zhí)行的語句序列二分支語句用于區(qū)分<條件>的兩種可能True或者False,分別形成執(zhí)行路徑分支結(jié)構(gòu)if…

else語句流程圖分支結(jié)構(gòu)示例2:對(duì)示例1進(jìn)行修改,輸入一個(gè)整數(shù)判讀該整數(shù)是否大于6,若大于6,輸出該整數(shù)大于6;否則輸出該整數(shù)小于或等于6。a=input(“請(qǐng)輸入一個(gè)整數(shù):”)a=int(a)ifa>6: print(a,“大于6”)else: print(a,“小于或等于6”)分支結(jié)構(gòu)(單分支和二分支)練習(xí)1:輸入一個(gè)年份,判斷是否為閏年。閏年必須滿足以下兩個(gè)條件之一:(1)能被4整除,但不能被100整除的年份都是閏年。(2)能被400整除的年份都是閏年。練習(xí)2:任意輸入3個(gè)數(shù)字,按從小到大的順序輸出。答案x=int(input("第一個(gè)數(shù):"))y=int(input("第二個(gè)數(shù):"))z=int(input("第三個(gè)數(shù):"))ifx>y:x,y=y,xifx>z:x,z=z,xify>z:y,z=z,yprint(x,y,z)分支結(jié)構(gòu)多分支結(jié)構(gòu):if…elif…else語句Python的if-elif-else描述多分支結(jié)構(gòu),語句格式如下:if<條件1>:<語句塊1>elif<條件2>:<語句塊2>...else:<語句塊N>分支結(jié)構(gòu)多分支結(jié)構(gòu)是二分支結(jié)構(gòu)的擴(kuò)展,這種形式通常用于設(shè)置同一個(gè)判斷條件的多條執(zhí)行路徑。Python依次評(píng)估尋找第一個(gè)結(jié)果為True的條件,執(zhí)行該條件下的語句塊,同時(shí)結(jié)束后跳過整個(gè)if-elif-else結(jié)構(gòu),執(zhí)行后面的語句。如果沒有任何條件成立,else下面的語句塊被執(zhí)行。else子句是可選的。分支結(jié)構(gòu)示例3:對(duì)上面示例再次修改,輸入一個(gè)整數(shù)判讀該整數(shù)是否大于6,若大于6,輸出該整數(shù)大于6;若該整數(shù)等于6則輸出該整數(shù)等于6;否則輸出該整數(shù)小于6。a=input(“請(qǐng)輸入一個(gè)整數(shù):”)a=int(a)ifa>6: print(a,“大于6”)elifa==6: print(a,“等于6”)

else: print(a,“小于6”)分支結(jié)構(gòu)if語句的嵌套前面講過的3種選擇語句之間都可以嵌套。

分支結(jié)構(gòu)if語句的嵌套分支結(jié)構(gòu)pass語句Python提供一個(gè)關(guān)鍵字pass,類似于空語句,可以用在類和函數(shù)的定義中或者選擇結(jié)構(gòu)中。當(dāng)暫時(shí)沒有確定如何實(shí)現(xiàn)功能,或者為以后的軟件升級(jí)預(yù)留空間,或者為其他類型功能時(shí),可以使用該關(guān)鍵字來“占位”。示例:

ifa<b: pass#什么操作也不做 else: z=acalssA:#類的定義passdefdemo():#函數(shù)的定義pass分支結(jié)構(gòu)練習(xí)1:輸入學(xué)生成績(jī)S,按分?jǐn)?shù)輸出其等級(jí),S≥90為優(yōu),90>S≥80為良,80>S≥70為中等,70>S≥60為及格,S<60為不及格。練習(xí)2:使用嵌套語句完成練習(xí)1。練習(xí)3:判斷支付密碼的輸入數(shù)字是否合法。練習(xí)2參考grade=int(input('請(qǐng)輸入你的成績(jī):'))ifgrade>=90:print('優(yōu)')else:ifgrade<90andgrade>=80:print('良')else:ifgrade<80andgrade>=70:print('中等')else:ifgrade<70andgrade>=60:print('及格')else:print('不及格')循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)無限循環(huán):while語句無限循環(huán)一直保持循環(huán)操作直到特定循環(huán)條件不被滿足才結(jié)束,不需要提前知道確定循環(huán)次數(shù)。Python通過保留字while實(shí)現(xiàn)無限循環(huán),使用方法如下:while判斷條件:

執(zhí)行語句

循環(huán)結(jié)構(gòu)無限循環(huán)也有一種使用保留字else的擴(kuò)展模式:while<判斷條件>:<語句塊1>else:<語句塊2>循環(huán)結(jié)構(gòu)示例:求1+2+3…+100。(擴(kuò)展1+2…+n) Sum=0 counter=1 whilecounter<=100: Sum=Sum+counter counter+=1 print(“1到100之和為:”,Sum)

循環(huán)結(jié)構(gòu)練習(xí):輸入兩個(gè)整數(shù),用“輾轉(zhuǎn)相除法”求它們的最大公約數(shù)。(1)比較兩數(shù),并使m大于n。(2)將m作被除數(shù),n作除數(shù),相除后余數(shù)為r。(3)循環(huán)判斷r,若r=0,則n為最大公約數(shù),結(jié)束循環(huán)。若r≠0,執(zhí)行mn,nr

;將m作被除數(shù),n作除數(shù),相除后余數(shù)為r。思路分析step1:將兩數(shù)中大的那個(gè)數(shù)放在m中,小的放在n中。?step2:求出m被n除后的余數(shù)r。??step3:若余數(shù)為0則執(zhí)行步驟(7),否則執(zhí)行步驟(4)。??step4:把除數(shù)作為新的被除數(shù);把余數(shù)作為新的除數(shù)。??step5:求出新的余數(shù)r。??step6:重復(fù)步驟(3)到(5)。??step7:輸出n,n即為最大公約數(shù)。參考答案參考m,n=map(int,input("請(qǐng)輸入兩個(gè)數(shù):").split(","))#輸入兩個(gè)數(shù)用逗號(hào)分開ifm<n:#如果m比n小,互換m和n的位置

m,n=n,mr=m%n#求出m除n的余數(shù)whiler:#如果余數(shù)不為0,進(jìn)行循環(huán)

m=n#把n賦值給mn=r#把r賦值給nr=m%n#求余數(shù)print(f"最大公約數(shù)是{n}")#輸出n,即為最大公約數(shù)循環(huán)結(jié)構(gòu)遍歷循環(huán):for語句for語句可以遍歷任何序列的項(xiàng)目,如一個(gè)列表、元組或者一個(gè)字符串。for循環(huán)的語法格式如下:for

循環(huán)索引值in

序列:

循環(huán)體

for語句的執(zhí)行過程:每次循環(huán),判斷循環(huán)索引值是否還在序列中,如果在,取出該值提供給循環(huán)體內(nèi)的語句使用;若果不在,則結(jié)束循環(huán)。循環(huán)結(jié)構(gòu)示例1:for循環(huán)把字符串中的字符遍歷出來。循環(huán)結(jié)構(gòu)示例2:for循環(huán)把列表中的元素遍歷出來。循環(huán)結(jié)構(gòu)Python的range()內(nèi)置函數(shù)可以生成一個(gè)整數(shù)序列,通過list()函數(shù)可以轉(zhuǎn)換為list列表。循環(huán)結(jié)構(gòu)示例:循環(huán)結(jié)構(gòu)練習(xí):使用range()函數(shù)的for循環(huán)求1+2+3…+100的和。循環(huán)結(jié)構(gòu)循環(huán)嵌套Python語音允許在一個(gè)循環(huán)體中嵌入另一個(gè)循環(huán)。While循環(huán)中可以嵌入for循環(huán),也可以在for循環(huán)中嵌入while循環(huán)。雙層循環(huán)是一種常見的循環(huán)嵌套,循環(huán)的次數(shù)等于內(nèi)外層循環(huán)次數(shù)之積。示例:注意:1.循環(huán)嵌套時(shí),外層循環(huán)和內(nèi)層循環(huán)是包含關(guān)系,即內(nèi)層循環(huán)必須被完全包含在外層循環(huán)中。2.程序每執(zhí)行一次外層循環(huán),則其內(nèi)層循環(huán)必須循環(huán)所有的次數(shù)后,才能進(jìn)入到外層循環(huán)的下一次循環(huán)。循環(huán)結(jié)構(gòu)循環(huán)保留字:break和continue循環(huán)結(jié)構(gòu)有兩個(gè)輔助保留字:break和continue,它們用來輔助控制循環(huán)執(zhí)行break用來跳出最內(nèi)層for或while循環(huán),脫離該循環(huán)后程序從循環(huán)后代碼繼續(xù)執(zhí)行。示例:其中,break語句跳出了最內(nèi)層for循環(huán),但仍然繼續(xù)執(zhí)行外層循環(huán)。每個(gè)break語句只有能力跳出當(dāng)前層次循環(huán)Python中的循環(huán)控制保留字有兩個(gè):continue和break。continue用于終止當(dāng)前輪次的循環(huán),本輪循環(huán)中后面的語句將不會(huì)被執(zhí)行,提前執(zhí)行下一輪循環(huán)。break用于退出本層循環(huán),繼續(xù)執(zhí)行循環(huán)外后面的語句。循環(huán)結(jié)構(gòu)continue用來結(jié)束當(dāng)前當(dāng)次循環(huán),即跳出循環(huán)體中下面尚未執(zhí)行的語句,但不跳出當(dāng)前循環(huán)。對(duì)于while循環(huán),繼續(xù)求解循環(huán)條件。而對(duì)于for循環(huán),程序流程接著遍歷循環(huán)列表對(duì)比continue和break語句,如下:循環(huán)結(jié)構(gòu)continue語句和break語句的區(qū)別是:continue語句只結(jié)束本次循環(huán),而不終止整個(gè)循環(huán)的執(zhí)行。break語句則是結(jié)束整個(gè)(當(dāng)前的)循環(huán)過程,不再判斷執(zhí)行循環(huán)的條件是否成立。循環(huán)結(jié)構(gòu)for循環(huán)和while循環(huán)中都存在一個(gè)else擴(kuò)展用法。else中的語句塊只在一種條件下執(zhí)行,即for循環(huán)正常遍歷了所有內(nèi)容沒有因?yàn)閎reak或return而退出。continue保留字對(duì)else沒有影響。示例:循環(huán)結(jié)構(gòu)

九九乘法口訣表參考答案練習(xí)1foriinrange(1,10):forjinrange(1,i+1):print('{0}*{1}={2}'.format(i,j,i*j),end='\t')print(end='\n’)參考答案練習(xí)2foriinrange(100,1000):b=int(i/100)s=int(i%100/10)g=int(i%10)ifb**3+s**3+g**3==i:print(i)參考答案練習(xí)3和練習(xí)4forxinrange(1,5):foryinrange(1,5):forzinrange(1,5):if(x!=y)and(y!=z)and(x!=z):print('{0}{1}{2}'.format(x,y,z))random庫的使用random庫的使用

溫馨提示

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