簡(jiǎn)單談?wù)凱ython流程控制語(yǔ)句
人們常說(shuō)人生就是一個(gè)不斷做選擇題的過(guò)程:有的人沒(méi)得選,只有一條路能走;有的人好一點(diǎn),可以二選一;有些能力好或者家境好的人,可以有更多的選擇;還有一些人在人生的迷茫期會(huì)在原地打轉(zhuǎn),找不到方向。對(duì)于相信有上帝的人來(lái)講,這就好像是上帝事先為我們制定好了人生路線,也好像是那些神仙為唐曾師徒的取經(jīng)之路提前設(shè)置的重重磨難,上帝和神仙掌控了一切。編程語(yǔ)言可以模擬人類生活的方方面面,程序員就像上帝和神仙一樣可以通過(guò)編程語(yǔ)言中特殊的關(guān)鍵字控制程序的執(zhí)行過(guò)程,這些關(guān)鍵字組成的就是流程控制語(yǔ)句。
編程語(yǔ)言中的流程控制語(yǔ)句分為以下幾類:
- 順序語(yǔ)句
- 分支語(yǔ)句
- 循環(huán)語(yǔ)句
其中順序語(yǔ)句不需要單獨(dú)的關(guān)鍵字來(lái)控制,就是一行行的執(zhí)行,不需要特殊的說(shuō)明。這里主要要說(shuō)的是 分支語(yǔ)句 和 循環(huán)語(yǔ)句。
一、分支語(yǔ)句
條件分支語(yǔ)句是通過(guò)一條或多條語(yǔ)句(判斷條件)的執(zhí)行結(jié)果(True/False)來(lái)決定執(zhí)行哪個(gè)分支的代碼塊。Python中提供的分支語(yǔ)句為:if..else語(yǔ)句,沒(méi)有提供switch..case語(yǔ)句。if..else語(yǔ)句有以下幾種形式:
單分支:
if 判斷條件:
代碼塊
如果單分支語(yǔ)句的代碼塊只有一條語(yǔ)句,可以把if語(yǔ)句和代碼寫(xiě)在同一行:
if 判斷條件: 一句代碼
實(shí)例:判斷指定的uid是不是root用戶
uid = 0 if uid == 0: print("root")
也可以這樣寫(xiě):
uid = 0 if uid == 0: print("root")
輸出結(jié)果:root
雙分支:
if 判斷條件:
代碼塊
else:
代碼塊
實(shí)例:根據(jù)用戶id打印用戶身份
uid = 100 if uid == 0: print("root") else: print("Common user")
輸出結(jié)果:Common user
多分支:
if 判斷條件1:
代碼塊1
elif 判斷條件2:
代碼塊2
...
elif 判斷條件n:
代碼塊n
else:
默認(rèn)代碼塊
實(shí)例:根據(jù)學(xué)生分?jǐn)?shù)打印字母等級(jí)
score = 88.8 level = int(score % 10) if level >= 10: print('Level A+') elif level == 9: print('Level A') elif level == 8: print('Level B') elif level == 7: print('Level C') elif level == 6: print('Level D') else: print('Level E')
輸出結(jié)果:Level B
說(shuō)明:
當(dāng)上面的“判斷條件”中的表達(dá)式可以是任意的表達(dá)式,也可以是任意類型的數(shù)據(jù)對(duì)象實(shí)例。只要判斷條件的最終返回結(jié)果的“真”值測(cè)試為True時(shí),就表示該條件成立,相應(yīng)的代碼塊就會(huì)被執(zhí)行;否則表示條件不成立,需要判斷下一個(gè)條件。
二、循環(huán)語(yǔ)句
當(dāng)我們需要多次執(zhí)行一個(gè)代碼語(yǔ)句或代碼塊時(shí),可以使用循環(huán)語(yǔ)句。Python中提供的循環(huán)語(yǔ)句有:while循環(huán)和for循環(huán)。需要注意的是Python中沒(méi)有do..while循環(huán)。此外,還有幾個(gè)用于控制循環(huán)執(zhí)行過(guò)程的循環(huán)控制語(yǔ)句:break、continue和pass。
1. while循環(huán)
基本形式
while循環(huán)語(yǔ)句的基本形式如下:
while 判斷條件:
代碼塊
當(dāng)給定的判斷條件的返回值的真值測(cè)試結(jié)果為True時(shí)執(zhí)行循環(huán)體的代碼,否則退出循環(huán)體。
實(shí)例:循環(huán)打印數(shù)字0-9
count = 0 while count <= 9: print(count, end=' ') count += 1
輸出結(jié)果:0 1 2 3 4 5 6 7 8 9
while死循環(huán)
當(dāng)while的判斷條件一直為True時(shí),while循環(huán)體中代碼就會(huì)永遠(yuǎn)循環(huán)下去。
while True:
print("這是一個(gè)死循環(huán)")
輸出結(jié)果:
這是一個(gè)死循環(huán)
這是一個(gè)死循環(huán)
這是一個(gè)死循環(huán)
...
此時(shí)可以通過(guò) Ctrl + C終止運(yùn)行。
while..else
語(yǔ)句形式:
while 判斷條件:
代碼塊
else:
代碼塊
else中的代碼塊會(huì)在while循環(huán)正常執(zhí)行完的情況下執(zhí)行,如果while循環(huán)被break中斷,else中的代碼塊不會(huì)執(zhí)行。
實(shí)例1:while循環(huán)正常執(zhí)行結(jié)束的情況(else中的語(yǔ)句會(huì)被執(zhí)行)
count = 0 while count <=9: print(count, end=' ') count += 1 else: print('end')
執(zhí)行結(jié)果為:0 1 2 3 4 5 6 7 8 9 end
實(shí)例2:while循環(huán)被中斷的情況(else中的語(yǔ)句不會(huì)被執(zhí)行)
count = 0 while count <=9: print(count, end=' ') if count == 5: break count += 1 else: print('end')
輸出結(jié)果:0 1 2 3 4 5
2. for循環(huán)
for循環(huán)通常用于遍歷序列(如list、tuple、range、str)、集合(如 set)和映射對(duì)象(如dict)。
基本形式
for循環(huán)的基本格式:
for 臨時(shí)變量 in 可迭代對(duì)象:
代碼塊
實(shí)例:遍歷打印一個(gè)list中的元素
names = ['Tom', 'Peter', 'Jerry', 'Jack'] for name in names: print(name)
對(duì)于序列,也通過(guò)索引進(jìn)行迭代:
names = ['Tom', 'Peter', 'Jerry', 'Jack'] for i in range(len(names)): print(names[i])
執(zhí)行結(jié)果:
Tom
Peter
Jerry
Jack
for...else
與while..else基本一致,不再贅述。
3. 循環(huán)控制語(yǔ)句
循環(huán)控制語(yǔ)句可以更改循環(huán)體中程序的執(zhí)行過(guò)程,如中斷循環(huán)、跳過(guò)本次循環(huán)。
循環(huán)控制語(yǔ)句 說(shuō)明
break 終止整個(gè)循環(huán)
contine 跳過(guò)本次循環(huán),執(zhí)行下一次循環(huán)
pass pass語(yǔ)句是個(gè)空語(yǔ)句,只是為了保持程序結(jié)構(gòu)的完整性,沒(méi)有什么特殊含義。pass語(yǔ)句并不是只能用于循環(huán)語(yǔ)句中,也可以用于分支語(yǔ)句中。
實(shí)例1:遍歷0-9范圍內(nèi)的所有數(shù)字,并通過(guò)循環(huán)控制語(yǔ)句打印出其中的奇數(shù)
for i in range(10): if i % 2 == 0: continue print(i, end=' ')
輸出結(jié)果:1 3 5 7 9
實(shí)例2:通過(guò)循環(huán)控制語(yǔ)句打印一個(gè)列表中的前3個(gè)元素
names = ['Tom', 'Peter', 'Jerry', 'Jack', 'Lilly'] for i in range(len(names)): if i >= 3: break print(names[i])
輸出結(jié)果:
Tom
Peter
Jerry
4. 循環(huán)嵌套
循環(huán)嵌套是指:在一個(gè)循環(huán)體里面嵌入另一循環(huán)。
實(shí)例1:通過(guò)while循環(huán)打印99乘法表
j = 1 while j <= 9: i = 1 while i <= j: print('%d*%d=%d' % (i, j, i*j), end='\t') i += 1 print() j += 1
實(shí)例2:通過(guò)for循環(huán)打印99乘法表
for j in range(1, 10): for i in range(1, j+1): print('%d*%d=%d' % (i, j, i*j), end='\t') i += 1 print() j += 1
輸出結(jié)果:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
相關(guān)文章
詳解Python Qt的窗體開(kāi)發(fā)的基本操作
這篇文章主要介紹了詳解Python Qt的窗體開(kāi)發(fā)的基本操作,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07Python簡(jiǎn)單實(shí)現(xiàn)安全開(kāi)關(guān)文件的兩種方式
這篇文章主要介紹了Python簡(jiǎn)單實(shí)現(xiàn)安全開(kāi)關(guān)文件的兩種方式,涉及Python的try語(yǔ)句針對(duì)錯(cuò)誤的判定與捕捉相關(guān)技巧,需要的朋友可以參考下2016-09-09Python開(kāi)發(fā)的HTTP庫(kù)requests詳解
Requests是用Python語(yǔ)言編寫(xiě),基于urllib,采用Apache2 Licensed開(kāi)源協(xié)議的HTTP庫(kù)。它比urllib更加方便,可以節(jié)約我們大量的工作,完全滿足HTTP測(cè)試需求。Requests的哲學(xué)是以PEP 20 的習(xí)語(yǔ)為中心開(kāi)發(fā)的,所以它比urllib更加Pythoner。更重要的一點(diǎn)是它支持Python3哦!2017-08-08Python結(jié)合Window計(jì)劃任務(wù)監(jiān)測(cè)郵件的示例代碼
這篇文章主要介紹了Python結(jié)合Window計(jì)劃任務(wù)監(jiān)測(cè)郵件的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08python從入門到精通 windows安裝python圖文教程
這篇文章主要為大家詳細(xì)介紹了python從入門到精通,windows安裝python圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05