1. 程式人生 > >python基礎(3)---流程控制

python基礎(3)---流程控制

組成 不同 一個 if語句 range inpu n-1 一是 選擇

  流程控制

  與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循環就比較方便

python基礎(3)---流程控制