流程控制是計(jì)算機(jī)運(yùn)算領(lǐng)域的用語(yǔ)祖灰,意指在程序運(yùn)行時(shí),個(gè)別的指令(或是陳述券腔、子程序)運(yùn)行或求值的順序伏穆。不論是在聲明式編程語(yǔ)言或是函數(shù)編程語(yǔ)言中,都有類似的概念纷纫。
條件判斷
if elif else
與Java異曲同工蜈出,Python的條件判斷語(yǔ)句將Java中的else if 合成一個(gè)關(guān)鍵字elif。使用方法冒號(hào)代替Java中的括號(hào)涛酗,縮進(jìn)區(qū)分代碼塊铡原,判斷的表達(dá)式由比較運(yùn)算符組成(運(yùn)算符),返回一個(gè)True Or False的結(jié)果商叹。elif 和 else 不能單獨(dú)存在燕刻,根據(jù)需求可以不使用,使用時(shí)必須與if聯(lián)用剖笙,else 只能有一個(gè)卵洗。
可譯為 如果:那么->否則如果:那么->否則如果:那么->否則,例如:
a = input("請(qǐng)輸入一個(gè)數(shù)字:")
a = int(a)#將數(shù)字轉(zhuǎn)化為整型判斷
if a < 10:
print("輸入小于10")
elif a>=10 and a<=20:
print("輸入大于10")
else :
print("輸入大于20")
循環(huán)遍歷
for 循環(huán)
for循環(huán)類似于Java中的增強(qiáng)循環(huán)(for a:b)弥咪,在一個(gè)可循環(huán)的集合中根據(jù)索引遍歷过蹂。掌握以下遍歷循環(huán)足夠使用了:
#定義一個(gè)可遍歷的數(shù)組
lists = ['a','b','c','d']
#一般遍歷
for t in lists:
print(t)
#通過(guò)下標(biāo)索引遍歷1
for i in range(len(lists)):
print(str(i)+"="+lists[i])#輸出下標(biāo)號(hào)和對(duì)應(yīng)的值
#通過(guò)下標(biāo)索引遍歷2 通過(guò)enumerate 枚舉實(shí)現(xiàn)
for i,t in enumerate(lists):
print(lists[i]==t)#輸出True 通過(guò)下標(biāo)獲取到底值和直接遍歷的值一樣
print(str(i)+"="+t)#輸出下標(biāo)號(hào)和對(duì)應(yīng)的值
#定義一個(gè)字典
dicts = {'a':'1','b':'2','c':'3'}
#字典遍歷循環(huán)
for (key,value) in dicts.items():
print("key="+key+" value="+value)
while 循環(huán)
可譯為當(dāng)什么的時(shí)候:執(zhí)行什么樣的動(dòng)作,例如:
a = 10;
i = 0;
while i < 10:
print("i="+str(i)+"小于"+str(a))
i+=1
lists = range(10)
i = 0
#這里while in 等于 for in聚至,一般有限的遍歷我們采用 for in
while i in lists:
print(i)
i+=1
i = 0
for i in lists:
print(i)
#這是一個(gè)死循環(huán)
while True:
print("死循環(huán)")
嵌套循環(huán)
即在循環(huán)內(nèi)部嵌套循環(huán)酷勺,一般用于多維數(shù)組獲取結(jié)果。例如:
#嵌套循環(huán)一般用于遍歷多維數(shù)組或集合
a = ([1,2,3,4],[5,6,7,8],['1','b','c','d'])
for i in a:
print(i)
for j in i:
print(j)
循環(huán)控制
控制循環(huán)一般會(huì)與條件判斷聯(lián)用扳躬,某些條件下需要怎樣操作循環(huán)脆诉,三個(gè)關(guān)鍵字:
break: 結(jié)束循環(huán)
coninue: 繼續(xù)循環(huán)
pass:繼續(xù)執(zhí)行甚亭,相當(dāng)于無(wú)條件,一般不用
for i in range(10):
print("當(dāng)前i="+str(i))
if i < 5:
print(str(i)+" 小于5")
continue
elif i >= 5 and i<=7:
print("pass ")
pass #將其注掉和保留結(jié)果一樣击胜,見(jiàn)下圖對(duì)比
print("pass 后面的內(nèi)容")
elif i==len(range(10))-2:
print("倒數(shù)第二個(gè)結(jié)束循環(huán)亏狰,此時(shí)索引下標(biāo)為:"+str(i))
break
print("一次 for 執(zhí)行完畢\n")
執(zhí)行結(jié)果如下,可以看出:
1偶摔、在條件一(if i < 5)處用了continue,后面的代碼沒(méi)有執(zhí)行暇唾;
2、在條件二(i >= 5 and i<=7)處用了pass辰斋,后面的語(yǔ)句正常執(zhí)行策州;
3、在條件三(i==len(range(10))-2)處用了break亡呵,結(jié)束跳出循環(huán)抽活;
有pass關(guān)鍵字 | 無(wú)pass關(guān)鍵字 |
---|---|
異常處理
try except elif else finally
可理解為:嘗試(try)執(zhí)行代碼塊1硫戈,發(fā)生了異常則執(zhí)行代碼塊2锰什,否則(異常可能多個(gè)丁逝,不在捕獲的except內(nèi)的異常會(huì)走else分支)執(zhí)行代碼塊3汁胆,最后不管是否發(fā)生異常都執(zhí)行代碼塊4。
try:
# 執(zhí)行代碼快1
except :
#執(zhí)行代碼塊2
else :
#執(zhí)行代碼塊3
finally :
#執(zhí)行代碼塊4
掌握異常處理基本語(yǔ)法后足夠目前使用霜幼,可參考一個(gè)封裝的類方法使用截圖嫩码,該方法后面用到會(huì)詳細(xì)介紹。
遞歸
遞歸即在某特定情況下罪既,方法調(diào)用其自身铸题,最終返回一個(gè)結(jié)果,該部分在后面學(xué)習(xí)類和函數(shù)時(shí)會(huì)具體講到琢感,這里打個(gè)預(yù)防針丢间。
本篇中介紹的條件判斷、循環(huán)控制驹针、異常處理烘挫、遞歸等往往會(huì)根據(jù)需求靈活自由組合使用,效果更佳柬甥。