流程式控制制 與C語言不通的是python的流程式控制制代碼塊不是用{}花括弧表示的,而是強制縮進來控制的;而且縮進必須一致,官方推薦是使用4個空格,不建議使用tab(製表符)做縮進,一是不同的系統tab所占寬度不一致,會比較亂,二是由於python要求同級縮進必須保持一致,所以有些時候看上去是對齊l,但是 ...
流程式控制制
與C語言不通的是python的流程式控制制代碼塊不是用{}花括弧表示的,而是強制縮進來控制的;而且縮進必須一致,官方推薦是使用4個空格,不建議使用tab(製表符)做縮進,一是不同的系統tab所占寬度不一致,會比較亂,二是由於python要求同級縮進必須保持一致,所以有些時候看上去是對齊l,但是有的是空格有的是tab鍵,使得不容易排錯,另外條件判斷的語句不需要使用()括起來,但是條件語句後面使用:
1.條件判斷--if語句
條件判斷就是執行某個代碼段之前先進行判斷,如果符合再執行某個代碼塊
比如,輸入年齡,如果年齡小於18歲,就告訴他too yong toosimple!
age = 17 if age <18; print('too yong too simple') #如果判斷返回的True就執行這段代碼View Code
也可以在if後面添加一個else語句,告訴Python解釋器,如果不符合執行條件(返回False)的代碼段,例如,如果年齡不小於18歲,就告訴他do you marry me?
age = 19 if age < 18: print('too young too simple') else: print('do you marry me?') #如果判斷返回的False就執行這段代碼View Code
由於Python沒有case語句,所以條件分支可以通過else if這樣嵌套,為了技術那好嵌套可以使用簡寫elif,例如再加一個條件如果大於30歲,告訴他too old!
age = 33 if age < 18: print('too young too simple') elif age > 32: print('too old!') else: print('do you marry me?')View Code
註意:保持縮進一直,不要忘了冒號:
應用示例:
現在有這麼一個需求,設計一個猜幸運數字的小游戲,通過控制台輸入的方式讓用戶猜你的幸運數字lucky number,如果用戶輸入的比你的幸運數字大就提示再小一點,反之如果輸入的比你幸運數字小澤提示再大一點,如猜中則提示Bingo。
''' @author:xiaocao Description:猜lucky number 1、如果猜的數字比lucky number大,提示小一點 2、如果猜的數字比lucky number小,提示說大一點 3、如果相等,提示Bingo ''' if __name__ == '__main__': #定義lucky number lucky_num = 5 #獲取用戶輸入的猜lucky number lucky_num_input = int(input("請輸入lucky number(1-10):")) #判斷用戶輸入的猜lucky number if lucky_num_input > lucky_num: #輸入的比lucky number大 print("再小一點") elif lucky_num_input < lucky_num: #輸入的比lucky number小 print("再大一點") else: #正確 print("Bingo")View Code
2.while迴圈:只要符合條件(條件語句返回的是True)則迴圈執行某個代碼段
比如我們的程式有著讓用戶輸入東西併進行處理(例如菜單程式),如果用戶輸入的q則退出程式
choose = '' while choose != 'q': choose = input('請輸入你要點的菜,輸入q退出')
迴圈中的常見關鍵字break、continue、else:
在迴圈中關鍵字break表示退出迴圈,continue表示退出當前迴圈繼續下一輪的迴圈,continue後面的語句將不執行,else和if中的else表示條件不滿足時(也就是正常退出迴圈不是用break強制退出)執行的代碼段
應用示例,還是剛纔那個猜幸運數字的游戲,之前只是輸入一次程式就退出了,如果繼續猜需要重新運行程式,這很不友好,我們現在讓用戶運行一次可以猜3次,如果3次猜不對再退出程式
''' @author:xiaocao Description:猜lucky number 1、如果猜的數字比lucky number大,提示小一點 2、如果猜的數字比lucky number小,提示說大一點 3、如果相等,提示Bingo 4、沒有猜對繼續迴圈直到猜對 5、限制三次,如果沒有猜對提示三次沒有猜對,游戲結束 ''' if __name__ == '__main__': #定義luncky number lucky_num = 5 #定義guess_count,計算猜的次數 guess_count = 0 while guess_count < 3: #獲取用戶輸入的猜lucky number lucky_num_input= int(input("請輸入lucky number:")) #判斷用戶輸入的猜lucky number if lucky_num_input > lucky_num: #輸入的比lucky number大 print("再小一點") elif lucky_num_input < lucky_num: #輸入的比lucky number小 print("再大一點") else: #輸入的和lucky number相等 print("Bingo") #退出迴圈 break #次數加1 guess_count += 1 else: #猜了三次迴圈正常退出 print("三次沒有猜對,游戲結束!")View Code
3.for迴圈
Python中的for迴圈常常使用in序列化對象(如列表、元組等)進行遍歷,這裡我們還沒講到列表元組等,我們可以用字元串(字元串也是序列化對象,可以遍歷每個元素,也就是組成字元串的每一個字元),假設我們有個一個字元串‘ABC’我們要把字元串中的每一個字元分別輸出,可以這樣做:
for i in 'ABC': print(i)
如果我們需要像C語言for(i=1;i<3;i++),可以藉助內置方法range(n),就是生成一個(0,1,2...n-1)的序列,例如我們要指定迴圈多少遍(列印0-9的數字)可以這麼做:
for i in range(10): print(i)
Python的for迴圈也可以使用break、continue和else,使用方法和while迴圈一樣
應用示例,我們把猜幸運數字的游戲改成for迴圈實現
''' @author:xiaocao for迴圈實現 Description:猜lucky number 1、如果猜的數字比lucky number大,提示小一點 2、如果猜的數字比lucky number小,提示說大一點 3、如果相等,提示Bingo 4、沒有猜對繼續迴圈直到猜對 5、限制三次,如果沒有猜對提示三次沒有猜對,游戲結束 ''' if __name__ == '__main__': #定義lucky number lucky_num = 5 for guess_count in range(3): #獲取用戶輸入的lucky number lucky_num_input = int(input("請輸入lucky number:")) #判斷用戶輸入的猜lucky number if lucky_num_input > lucky_num: #輸入的比lucky number大 print("再小一點") elif lucky_num_input < lucky_num: #輸入的比lucky number小 print("再大一點") else: #輸入的和lucky number相等 print("Binge") #退出迴圈 break else: #猜了三次迴圈正常退出 print("三次沒有猜對,游戲結束!")View Code
總結:while和for迴圈雖然都可以實現迴圈,但是他們各自有各自的特點,根據實際需要選擇,例如不限定迴圈的次數只要符合條件就退出迴圈使用while迴圈就比較方便,如果限定迴圈次數或者要遍歷序列對象使用for迴圈就比較方便