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

來源:互聯網
上載者:User

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

  流程式控制制

  與C語言不通的是python的流程式控制制代碼塊不是用{}花括弧表示的,而是強制縮排來控制的;而且縮排必須一致,官方推薦是使用4個空格,不建議使用tab(定位字元)做縮排,一是不同的系統tab所佔寬度不一致,會比較亂,二是由於python要求同級縮排必須保持一致,所以有些時候看上去是對齊l,但是有的是空格有的是tab鍵,使得不容易排錯,另外條件判斷的語句不需要使用()括起來,但是條件陳述式後面使用:

  1.條件判斷--if語句

  條件判斷就是執行某個程式碼片段之前先進行判斷,如果符合再執行某個代碼塊

  比如,輸入年齡,如果年齡小於18歲,就告訴他too yong toosimple!

age = 17if age <18;    print('too yong too simple')    #如果判斷返回的True就執行這段代碼
View Code

  也可以在if後面添加一個else語句,告訴Python解譯器,如果不符合執行條件(返回False)的程式碼片段,例如,如果年齡不小於18歲,就告訴他do you marry me?

age = 19if 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 = 33if 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:xiaocaoDescription:猜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:xiaocaoDescription:猜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:xiaocaofor迴圈實現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迴圈就比較方便

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.