人們常說人生就是一個不斷做選擇題的過程:有的人沒得選,只有一條路能走;有的人好一點,可以二選一;有些能力好或者家境好的人,可以有更多的選擇;還有一些人在人生的迷茫期會在原地打轉,找不到方向。對于相信有上帝的人來講,這就好像是上帝事先為我們制定好了人生路線,也好像是那些神仙為唐曾師徒的取經之路提前設置的重重磨難,上帝和神仙掌控了一切。編程語言可以模擬人類生活的方方面面,程序員就像上帝和神仙一樣可以通過編程語言中特殊的關鍵字控制程序的執行過程,這些關鍵字組成的就是流程控制語句。
編程語言中的流程控制語句分為以下幾類:
- 順序語句
- 分支語句
-
循環語句
其中順序語句不需要單獨的關鍵字來控制,就是一行行的執行,不需要特殊的說明。這里主要要說的是 分支語句 和 循環語句。
一、分支語句
條件分支語句是通過一條或多條語句(判斷條件)的執行結果(True/False)來決定執行哪個分支的代碼塊。Python中提供的分支語句為:if..else語句,沒有提供switch..case語句。if..else語句有以下幾種形式:
單分支:
if 判斷條件:
??? 代碼塊
如果單分支語句的代碼塊只有一條語句,可以把if語句和代碼寫在同一行:
if 判斷條件: 一句代碼
實例:判斷指定的uid是不是root用戶
uid = 0 if uid == 0: print("root")
也可以這樣寫:
uid = 0 if uid == 0: print("root")
輸出結果:root
雙分支:
if 判斷條件:
??? 代碼塊
else:
??? 代碼塊
實例:根據用戶id打印用戶身份
uid = 100 if uid == 0: print("root") else: print("Common user")
輸出結果:Common user
多分支:
if 判斷條件1:
??? 代碼塊1
elif 判斷條件2:
??? 代碼塊2
...
elif 判斷條件n:
??? 代碼塊n
else:
??? 默認代碼塊
實例:根據學生分數打印字母等級
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')
輸出結果:Level B
說明:
當上面的“判斷條件”中的表達式可以是任意的表達式,也可以是任意類型的數據對象實例。只要判斷條件的最終返回結果的“真”值測試為True時,就表示該條件成立,相應的代碼塊就會被執行;否則表示條件不成立,需要判斷下一個條件。
二、循環語句
當我們需要多次執行一個代碼語句或代碼塊時,可以使用循環語句。Python中提供的循環語句有:while循環和for循環。需要注意的是Python中沒有do..while循環。此外,還有幾個用于控制循環執行過程的循環控制語句:break、continue和pass。
1. while循環
基本形式
while循環語句的基本形式如下:
while 判斷條件:
??? 代碼塊
當給定的判斷條件的返回值的真值測試結果為True時執行循環體的代碼,否則退出循環體。
實例:循環打印數字0-9
count = 0 while count <= 9: print(count, end=' ') count += 1
輸出結果:0 1 2 3 4 5 6 7 8 9
while死循環
當while的判斷條件一直為True時,while循環體中代碼就會永遠循環下去。
while True:
??? print("這是一個死循環")
輸出結果:
這是一個死循環
這是一個死循環
這是一個死循環
...
此時可以通過 Ctrl + C終止運行。
while..else
語句形式:
while 判斷條件:
??? 代碼塊
else:
??? 代碼塊
else中的代碼塊會在while循環正常執行完的情況下執行,如果while循環被break中斷,else中的代碼塊不會執行。
實例1:while循環正常執行結束的情況(else中的語句會被執行)
count = 0 while count <=9: print(count, end=' ') count += 1 else: print('end')
執行結果為:0 1 2 3 4 5 6 7 8 9 end
實例2:while循環被中斷的情況(else中的語句不會被執行)
count = 0 while count <=9: print(count, end=' ') if count == 5: break count += 1 else: print('end')
輸出結果:0 1 2 3 4 5
2. for循環
for循環通常用于遍歷序列(如list、tuple、range、str)、集合(如 set)和映射對象(如dict)。
基本形式
for循環的基本格式:
for 臨時變量 in 可迭代對象:
??? 代碼塊
實例:遍歷打印一個list中的元素
names = ['Tom', 'Peter', 'Jerry', 'Jack'] for name in names: print(name)
對于序列,也通過索引進行迭代:
names = ['Tom', 'Peter', 'Jerry', 'Jack'] for i in range(len(names)): print(names[i])
執行結果:
Tom
Peter
Jerry
Jack
for...else
與while..else基本一致,不再贅述。
3. 循環控制語句
循環控制語句可以更改循環體中程序的執行過程,如中斷循環、跳過本次循環。
循環控制語句?說明
break?終止整個循環
contine?跳過本次循環,執行下一次循環
pass?pass語句是個空語句,只是為了保持程序結構的完整性,沒有什么特殊含義。pass語句并不是只能用于循環語句中,也可以用于分支語句中。
實例1:遍歷0-9范圍內的所有數字,并通過循環控制語句打印出其中的奇數
for i in range(10): if i % 2 == 0: continue print(i, end=' ')
輸出結果:1 3 5 7 9
實例2:通過循環控制語句打印一個列表中的前3個元素
names = ['Tom', 'Peter', 'Jerry', 'Jack', 'Lilly'] for i in range(len(names)): if i >= 3: break print(names[i])
輸出結果:
Tom
Peter
Jerry
4. 循環嵌套
循環嵌套是指:在一個循環體里面嵌入另一循環。
實例1:通過while循環打印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
實例2:通過for循環打印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
輸出結果:
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?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
