《Python大數(shù)據(jù)基礎(chǔ)與實(shí)戰(zhàn)》課件-Python大數(shù)據(jù)基礎(chǔ)與實(shí)戰(zhàn)(第5章 流程控制)_第1頁(yè)
《Python大數(shù)據(jù)基礎(chǔ)與實(shí)戰(zhàn)》課件-Python大數(shù)據(jù)基礎(chǔ)與實(shí)戰(zhàn)(第5章 流程控制)_第2頁(yè)
《Python大數(shù)據(jù)基礎(chǔ)與實(shí)戰(zhàn)》課件-Python大數(shù)據(jù)基礎(chǔ)與實(shí)戰(zhàn)(第5章 流程控制)_第3頁(yè)
《Python大數(shù)據(jù)基礎(chǔ)與實(shí)戰(zhàn)》課件-Python大數(shù)據(jù)基礎(chǔ)與實(shí)戰(zhàn)(第5章 流程控制)_第4頁(yè)
《Python大數(shù)據(jù)基礎(chǔ)與實(shí)戰(zhàn)》課件-Python大數(shù)據(jù)基礎(chǔ)與實(shí)戰(zhàn)(第5章 流程控制)_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第五章流程控制5.4break和continue語句5.2選擇結(jié)構(gòu)5.3循環(huán)結(jié)構(gòu)5.1條件表達(dá)式5.5案例實(shí)戰(zhàn)前面章節(jié)已經(jīng)學(xué)習(xí)了Python的基本語法和內(nèi)置的數(shù)據(jù)結(jié)構(gòu),本章學(xué)習(xí)Python常用的流程控制語句。程序流程控制語句是程序設(shè)計(jì)語言的基礎(chǔ),是編程的重點(diǎn)。Python通過選擇語句if、if…else、if…elif…else和循環(huán)語句while、for等來實(shí)現(xiàn)程序的流程控制功能。5.1條件表達(dá)式5.1條件表達(dá)式在選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)中,常常需要對(duì)條件表達(dá)式的值進(jìn)行判斷來確定下一步的執(zhí)行流程。在Python中,條件表達(dá)式的構(gòu)成要比其它語言靈活得多,單個(gè)常量、變量或者任意合法表達(dá)式(包括函數(shù)調(diào)用表達(dá)式)都可以作為條件表達(dá)式。5.1條件表達(dá)式條件表達(dá)式中可以使用算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符和矩陣相乘運(yùn)算符等條件表達(dá)式的值為False的情況False、0(0.0、0j)、None、空列表、空元組、空集合、空字典、空字符串、空range;對(duì)象或其它空迭代對(duì)象,Python解釋器均認(rèn)為等價(jià)于False。條件表達(dá)式的值為True的情況條件表達(dá)式的值只要不是False,Python均認(rèn)為與True等價(jià)。Python不同于其它語言,條件表達(dá)式中不能使用賦值運(yùn)算符“=”,否則會(huì)拋出異常。5.2選擇結(jié)構(gòu)5.2選擇結(jié)構(gòu)-單分支選擇結(jié)構(gòu)單分支選擇結(jié)構(gòu)是最簡(jiǎn)單的一種形式。Python提供了if語句來支持單分支結(jié)構(gòu),其語法結(jié)構(gòu)如下所示:if條件表達(dá)式:

滿足條件時(shí)要執(zhí)行的語句塊注意:同一語句塊的所有語句縮進(jìn)相同。5.2選擇結(jié)構(gòu)-單分支選擇結(jié)構(gòu)代碼示例如下:math=65print('開始進(jìn)入if語句并判斷表達(dá)式的值是否為True')ifmath>=85: #條件表達(dá)式

print('數(shù)學(xué)成績(jī)優(yōu)秀') #if語句塊,滿足條件執(zhí)行,否則不執(zhí)行print('if語句運(yùn)行結(jié)束') #if語句結(jié)構(gòu)外語句5.2選擇結(jié)構(gòu)-雙分支選擇結(jié)構(gòu)單分支結(jié)可以決定條件為真時(shí)要做的事情,無法決定條件為假時(shí)如何做,這就需要使用雙分支選擇結(jié)構(gòu)的if…else語句。其語法結(jié)構(gòu)如下:if條件表達(dá)式:滿足條件時(shí)要執(zhí)行的語句塊1else:

不滿足條件時(shí)要執(zhí)行的語句25.2選擇結(jié)構(gòu)-雙分支選擇結(jié)構(gòu)代碼示例如下:day="正月初一"ifday==“年三十”:

#if語句條件表達(dá)式

print('今天是除夕') #if語句塊,滿足條件執(zhí)行else:

#if語句塊,不滿足條件執(zhí)行

print('過年了')print('可以拿壓歲錢了')5.2選擇結(jié)構(gòu)-多分支選擇結(jié)構(gòu)多分支結(jié)構(gòu)if…elif…else語句對(duì)if條件語句中的多個(gè)條件進(jìn)行判斷,然后執(zhí)行相應(yīng)的語句塊,其用法如下:if條件表達(dá)式1:

滿足條件1時(shí)要執(zhí)行的語句塊1elif條件表達(dá)式2:

滿足條件2時(shí)要執(zhí)行的語句塊2elif條件表達(dá)式3:

滿足條件3時(shí)要執(zhí)行的語句塊3else:

不滿足上述條件時(shí)執(zhí)行的語句塊45.2選擇結(jié)構(gòu)-多分支選擇結(jié)構(gòu)if…elif…else語句執(zhí)行流程如圖5.2選擇結(jié)構(gòu)-多分支選擇結(jié)構(gòu)示例如下:score=int(input("請(qǐng)輸入你的分?jǐn)?shù):")) ifscore>=90: print("你的等級(jí)是:A") elifscore>=80: print("你的等級(jí)是:B") elifscore>=60: print("你的等級(jí)是:C") elifscore>=40: print("你的等級(jí)是:D") elifscore>=0: print("你的等級(jí)是:E") else: print("祝賀你已經(jīng)完成成績(jī)分級(jí)。")5.2選擇結(jié)構(gòu)-選擇結(jié)構(gòu)的嵌套if嵌套就是在一個(gè)選擇結(jié)構(gòu)的語句塊中包含另一個(gè)選擇結(jié)構(gòu),其用法如下:if條件表達(dá)式1:

滿足條件1時(shí)要執(zhí)行的語句塊1 if條件表達(dá)式2:

滿足條件2時(shí)要執(zhí)行的語句塊塊2 else:

不滿足條件2時(shí)要執(zhí)行的語句塊3else:

不滿足條件1時(shí)要執(zhí)行的語句塊45.2選擇結(jié)構(gòu)-選擇結(jié)構(gòu)的嵌套message=["你的成績(jī)及格","你的成績(jī)中等","你的成績(jī)良好","你的成績(jī)優(yōu)秀","你的成績(jī)不及格"]score=int(input("請(qǐng)輸入你的分?jǐn)?shù):"))if0<=score<=100:

index=(score-60)//10

ifindex>=0:

print(message[index])

else:

print(message[-1])else:

print("錯(cuò)誤的成績(jī),成績(jī)必須在0和100之間")5.3循環(huán)結(jié)構(gòu)5.3循環(huán)結(jié)構(gòu)

Python循環(huán)控制結(jié)構(gòu)whileforwhile循環(huán)一般用于循環(huán)次數(shù)難以提前確定的情況,也可以用于循環(huán)次數(shù)確定的情況。for循環(huán)一般用于循環(huán)次數(shù)可以提前確定的情況,尤其是用于枚舉序列或迭代對(duì)象中的元素。一般優(yōu)先考慮使用for循環(huán)。相同或不同的循環(huán)結(jié)構(gòu)之間都可以互相嵌套,實(shí)現(xiàn)更為復(fù)雜的邏輯。5.3循環(huán)結(jié)構(gòu)

while循環(huán)和for循環(huán)的執(zhí)行流程如圖5.3循環(huán)結(jié)構(gòu)while循環(huán)常見用法:while條件表達(dá)式:循環(huán)體for循環(huán)常見用法:for<循環(huán)變量>in<可迭代對(duì)象或迭代器>:循環(huán)體5.3循環(huán)結(jié)構(gòu)else子句常見用法for...else語法形式如下:for<循環(huán)變量>in<可迭代對(duì)象或迭代器>:

循環(huán)體else:

代碼塊while...else語法形式如下:while條件表達(dá)式:

循環(huán)體else:

代碼塊5.3循環(huán)結(jié)構(gòu)循環(huán)簡(jiǎn)單代碼示例如下:count=0 #初始化循環(huán)控制變量whilecount<5: #條件表達(dá)式的值為True時(shí),執(zhí)行循環(huán)體

print(count,"islessthan5") #注意縮進(jìn)要一致

count+=1

#循環(huán)控制變量自增,避免死循環(huán)else: print(count,"isnotlessthan5") #表達(dá)式的值為False時(shí)執(zhí)行else語句塊5.3循環(huán)結(jié)構(gòu)循環(huán)簡(jiǎn)單代碼示例如下:name=[“XiJing”,“University”]

#定義一個(gè)列表forcinname:

#遍歷列表中的每一個(gè)元素

ifc=="XiJing": print("founded!")else: print(“Thesearchiscomplete”)

#遍歷完列表的元素后執(zhí)行print雞兔同籠問題。假設(shè)共有雞、兔30只,腳90只,求雞、兔各有多少只。forjiinrange(1,30):if2*ji+(30-ji)*4==90:print('ji:',ji,'tu:',30-ji)5.3循環(huán)結(jié)構(gòu)5.3循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)的優(yōu)化在編寫循環(huán)語句時(shí),應(yīng)該盡量減少循環(huán)內(nèi)部不必要的計(jì)算,將與循環(huán)變量無關(guān)的代碼盡可能放到循環(huán)體的外面。優(yōu)化前的代碼:digits=(1,2,3,4)result=[]foriinrange(1000):foriindigits:

forjindigits:

forkindigits:

result.append(i*100+j*10+k)#i,j,k各執(zhí)行執(zhí)行1000*4**3次5.3循環(huán)結(jié)構(gòu)5.3循環(huán)結(jié)構(gòu)優(yōu)化后的代碼:digits=(1,2,3,4)result=[]foriinrange(1000):foriindigits:

i=i*100 #i執(zhí)行1000*4次

forjindigits:

j=j*10 #j執(zhí)行1000*4**2次

forkindigits:

result.append(i+j+k) #k執(zhí)行1000*4**3次5.4break和continue語句5.4break和continue語句break和continue都是循環(huán)控制關(guān)鍵字,為循環(huán)結(jié)構(gòu)提供額外的控制break和continue可以與for和while循環(huán)搭配使用break和continue只能在循環(huán)中使用,不能單獨(dú)使用在嵌套循環(huán)中,break和continue只對(duì)最近的一層循環(huán)起作用5.4break和continue語句示例代碼:求i除以2的余數(shù),如果余數(shù)為0結(jié)束當(dāng)次循環(huán),繼續(xù)執(zhí)行后續(xù)循環(huán);如果余數(shù)不為0則打印i,并判斷如果i>=7就結(jié)束整個(gè)循環(huán),執(zhí)行循環(huán)后語句。foriinrange(10): ifi%2==0:

continue print(i,end=",") ifi>=7:

breakelse: #由于break會(huì)提前跳出循環(huán)體,所以else子句不會(huì)得以執(zhí)行

print("循環(huán)結(jié)束")

5.5案例實(shí)戰(zhàn)5.5案例實(shí)戰(zhàn)-案例描述編寫程序打印空心等邊三角形的程序。編寫程序打印九九乘法表的程序。編寫程序輸出50以內(nèi)的勾股數(shù),要求每行顯示6組,各勾股數(shù)無重復(fù)。5.5案例實(shí)戰(zhàn)-案例實(shí)現(xiàn)打印空心三角形:先定義一個(gè)變量rows記錄等邊三角形邊長(zhǎng),用循環(huán)嵌套和if-elif-else語句控制等邊三角形邊上點(diǎn)的位置。代碼如下:rows=int(input("輸入行數(shù):"))foriinrange(0,rows): #i控制每一行forkinrange(0,2*rows-1): #k控制每一行中的列數(shù)if(i!=rows-1)and(k==rows-i-1ork==rows+i-1):#控制每行打印*的位置

print("*",end="\t")elifi==rows-1: #最后一行

ifk%2==0: print("*",end="\t")else:print("",end="\t")else: #控制每行打印空格的位置

print("",end="\t")print("\n")5.5案例實(shí)戰(zhàn)-案例實(shí)現(xiàn)打印九九乘法表:使用兩層循環(huán)完成任務(wù),外層循環(huán)控制打印的行數(shù),內(nèi)層循環(huán)控制打印的列數(shù)和值。print("九九乘法表")i=1 #外層循環(huán)控制變量初始化foriinrange(1,10):j=1 #內(nèi)層循環(huán)控制變量初始化

forjinrange(1,i+1):print("%d*%d=%-2d"%(i,j,i*j),end='')j+=1print("\n")i+=15.5案例實(shí)戰(zhàn)-案例實(shí)現(xiàn)輸出50以內(nèi)的勾股數(shù):可以采用多種循環(huán)的窮

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論