Python學習--控制流

控制流

 

        在Python中有三種控制流語句——if、while和for。

 

  • if語句

        if語句用來檢驗一個條件,如果條件爲真,我們運行一塊語句(稱爲if-塊), 否則我們處理另外一塊語句(稱爲else-塊)。 else 從句是可選的。

       

        1.使用if語句

        if語句的使用方式參見如下例子:

 

num = 18
guess = int(raw_input('Enter an Integer: '))
# 使用if語句開始

if num == guess:
    print 'You are right!'
else :
    print 'You are wrong!'

print 'Done!'

        輸出

 

Enter an Integer: 19
You are wrong!
Done!

Enter an Integer: 18
You are right!
Done! 

 

        2.它如何工作
        在這個程序中,我們從用戶處得到猜測的數,然後檢驗這個數是否是我們手中的那個。我們把變量num設置爲我們想要的任何整數,在這個例子中是18。然後,我們使用raw_input()函數取得用戶猜測的數字。函數只是重用的程序段。
        我們爲內建的raw_input函數提供一個字符串,這個字符串被打印在屏幕上,然後等待用戶的輸入。一旦我們輸入一些東西,然後按回車鍵之後,函數返回輸入。對於raw_input函數來說是一個字符串。我們通過int把這個字符串轉換爲整數,並把它存儲在變量guess中。事實上,int是一個類,不過你想在對它所需瞭解的只是它把一個字符串轉換爲一個整數(假設這個字符串含有一個有效的整數文本信息)。
接下來,我們將用戶的猜測與我們選擇的數做比較。如果他們相等,我們打印一個成功的消息。注意我們使用了縮進層次來告訴Python每個語句分別屬於哪一個塊。這就是爲什麼縮進在Python如此重要的原因。
        注意:

        1)if語句在結尾處包含一個冒號——我們通過它告訴Python下面跟着一個語句塊。然後,我們檢驗猜測是否小於我們的數,如果是這樣的,我們告訴用戶它的猜測大了一點。我們在這裏使用的是else從句,也可以使用elif從句,它事實上把兩個相關聯的if else-if else語句合併爲一個if-elif-else語句。這使得程序更加簡單,並且減少了所需的縮進數量。
        2)elif和else從句都必須在邏輯行結尾處有一個冒號,下面跟着一個相應的語句塊(當然還包括正確的縮進)。我們也可以在一個if塊中使用另外一個if語句,等等——這被稱爲嵌套的if語句。
elif和else部分是可選的。
        在Python執行完一個完整的if語句以及與它相關聯的elif和else從句之後,它移向if語句塊的下一個語句。在這個例子中,這個語句塊是主塊。程序從主塊開始執行,而下一個語句是print 'Done'語句。在這之後,Python看到程序的結尾,簡單的結束運行。

        另外,在Python中沒有switch語句。你可以使用if..elif..else語句來完成同樣的工作(在某些場合,使用字典會更加快捷。)

 

  • while語句

        只要在一個條件爲真的情況下,while語句允許你重複執行一塊語句。while語句是所謂循環語句的一個例子。while語句有一個可選的else從句。

 

        1.使用while語句

        while語句的使用方法參見如下例子:

num = 18
running = true
#使用while語句開始

while running:
    guess = int(raw_input('Enter an Integer: '))
    if num == guess:
        print 'You are right!'
        running = false
    elif num < guess:
        print 'You guess a little higher!'
    else :
        print 'You guess a little lower!'
else
    print 'The running is over!'

print 'Done!'

        輸出

Enter an Integer: 19
You guess a little higher!
Enter an Integer: 18
You are right!
The running is over!
Done!

        2.它如何工作

        在這個程序中,我們仍然使用了猜數遊戲作爲例子,但是這個例子的優勢在於用戶可以不斷的猜數,直到他猜對爲止。這樣就不需要像前面那個例子那樣爲每次猜測重複執行一遍程序。
        我們把raw_input和if語句移到了while循環內,並且在while循環開始前把running變量設置爲True。首先,我們檢驗變量running是否爲True,然後執行後面的while-塊。在執行了這塊程序之後,再次檢驗條件,在這個例子中,條件是running變量。如果它是真的,我們再次執行while-塊,否則,我們繼續執行可選的else-塊,並接着執行下一個語句。
        當while循環條件變爲False的時候,else塊才被執行。如果while循環有一個else從句,它將始終被執行,除非你的while循環將永遠循環下去不會結束!
        注意:

        1)True和False被稱爲布爾類型。
        2)可以在while循環中使用一個else從句。

 

  • for循環

        for..in是另外一個循環語句,它在一序列的對象上遞歸即逐一使用隊列中的每個項目。

 

        1.使用for語句

        for語句的使用方法參見如下例子:

for i in range ( 1 , 5 ):
    print i
else :
    print 'The for loop is over'
        輸出
1
2
3
4
The for loop is over
         2.它如何工作
        在這個程序中,我們打印了一個序列的數。我們使用內建的range函數生成這個數的序列。
        我們所做的只是提供兩個數,range返回一個序列的數。這個序列從第一個數開始到第二個數爲止。例如,range(1,5)給出序列[1, 2, 3, 4]。默認地,range的步長爲1。如果我們爲range提供第三個數,那麼它將成爲步長。例如,range(1,5,2)給出[1,3]。記住,range 向上 延伸到第二個數,即它不包含第二個數。
        for循環在這個範圍內遞歸——for i in range(1,5)等價於for i in [1, 2, 3, 4],這就如同把序列中的每個數(或對象)賦值給i,一次一個,然後以每個i的值執行這個程序塊。在這個例子中,我們只是打印i的值。
        注意:
        1)else部分是可選的。如果包含else,它總是在for循環結束後執行一次,除非遇到break語句。
        2)for..in循環對於任何序列都適用。

 

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章