python初識03-流程控制
流程控制方法的使用極大的增強了程式的執行能力,使得程式能像人一樣,能夠判斷條件並根據結果來執行一系列任務。
流程控制包括 if判斷、while迴圈和for迴圈。
1、if判斷
我們先看一個用if判斷寫的猜數字遊戲:
bkg_num = 18 guess = input("input a number >>>") if guess != bkg_num: print("not this number")
if 是if判斷的標誌,在if後面加上判斷條件,如果條件滿足就執行if語句內的程式碼塊。此外,if經常和elif,else連用。
elif用來連線多個條件的判斷,而else上面的所有條件都不滿足時,就會執行else下的程式碼塊。
你可以嘗試寫一段判斷成績的程式碼,當輸入分數時,會根據分數確定成績等級:
score = input('your score>>: ') score = int(score) if score >= 90: print('優秀') elif score >= 80: print('良好') elif score >= 70: print('普通') else: print('很差')
if判斷還可以用來巢狀,在一個if語句的子程式碼塊裡再次使用if判斷。
2、while 迴圈
if判斷只能執行一次,如果想要多次執行一段程式碼,直到滿足要求才停止,就需要用到while迴圈。
i = 0 while i < 5: print(i) i += 1
while後面是判斷條件,當條件滿足時(True),會執行子程式碼塊,執行完子程式碼塊時,會再次判斷條件是否滿足,如果滿足,繼續執行,如此迴圈。為了不讓程式陷入死迴圈,通常會新增一段程式碼(比如 i+=1 這樣的計數器)來控制迴圈。
你可以使用while迴圈來實現一個簡化的登陸功能。
name_of_bk='xiaoli' pwd_of_bk='123' tag=True count = 0 while tag: inp_name=input('your name>>:') inp_pwd=input('your password>>: ') if inp_name == name_of_bk and inp_pwd == pwd_of_bk: print('login successful') tag=False else: print('username or password error') count+= 1 if count == 3: tag = False
可以看到,程式碼中使用了變數count作為控制的變數,每次輸入錯誤,count自增1,當count ==3 時,tag = False,while迴圈的條件就不滿足了,從而終止迴圈。
終止迴圈還可以使用關鍵字break 和 continue,break會無條件終止其所在迴圈,並且放棄執行這個迴圈中break下方的程式碼,然後跳出這個迴圈。而 continue 會跳出本次迴圈,不執行本次迴圈中continue下方的程式碼,回到判斷條件。
while True: num1 = int(input("give me a number>>>")) if num1 < 5: print("被break終止") break else: print("遇到了continue") continue
與其他語言不同的是,while迴圈後也可以加else,當while語句正常執行完,沒有被break,就會執行else裡的語句。
while迴圈也能巢狀,用while迴圈列印一個下圖所示的金字塔:
row = 1 while row <6: rank = 0 while rank<(5-row): print(" ",end="") rank+=1 print("*"*(2*row-1)) row+=1
while迴圈還可以列印楊輝三角,斐波那契數列等,請自行嘗試。