Python學習(五)

來源:互聯網
上載者:User
文章目錄
  • 1、if語句:
  • 2、while語句:
  • 3、for迴圈:
  • 4、break語句:
  • 6、continue語句:
五、控制流程1、if語句:

如果if條件為真,程式運行if程式塊,否則運行else程式塊。else語句是可選的。

例如:

# Filename: if.py number = 23guess = int(input('Enter an integer : ')) if guess == number:    print('Congratulations, you guessed it.') # New block starts here    print('(but you do not win any prizes!)') # New block ends hereelif guess < number:    print('No, it is a little higher than that') # Another block    # You can do whatever you want in a block ...else:    print('No, it is a little lower than that')    # you must have guessed > number to reach here print('Done')# This last statement is always executed, after the if statement is executed

輸出:

C:\Users\Administrator>python D:\python\if.py

Enter an integer : 50

No, it is a little lower than that

Done C:\Users\Administrator>python D:\python\if.py

Enter an integer : 22

No, it is a little higher than that

Done C:\Users\Administrator>python D:\python\if.py

Enter an integer : 23

Congratulations, you guessed it.

(but you do not win any prizes!)

Done

工作原理:

在這個程式中,我們從使用者處得到猜測的數,然後檢驗這個數是否是我們手中的那個。我們把變數number設定為我們想要的任何整數,在這個例子中是23。然後,我們使用input()函數取得使用者猜測的數字。函數只是重用的程式段。

我們為內建的input函數提供一個字串,這個字串被列印在螢幕上,然後等待使用者的輸入。一旦我們輸入一些東西,然後按斷行符號鍵之後,函數返回輸入。對於input函數來說是一個字串。我們通過int把這個字串轉換為整數,並把它儲存在變數guess中。事實上,int是一個類,不過你想在對它所需瞭解的只是它把一個字串轉換為一個整數(假設這個字串含有一個有效整數文本資訊)。

註:在python3中已經沒有之前版本的raw_input()函數,由input()代替。

接下來,我們將使用者的猜測與我們選擇的數做比較。如果他們相等,我們列印一個成功的訊息。注意我們使用了縮排層次來告訴Python每個語句分別屬於哪一個塊。這就是為什麼縮排在Python如此重要的原因。

注意if語句在結尾處包含一個冒號——我們通過它告訴Python下面跟著一個語句塊。

然後,我們檢驗猜測是否小於我們的數,如果是這樣的,我們告訴使用者它的猜測大了一點。我們在這裡使用的是elif從句,它事實上把兩個相關聯的if else-if else語句合并為一個if-elif-else語句。這使得程式更加簡單,並且減少了所需的縮排數量。

elif和else從句都必須在邏輯行結尾處有一個冒號,下面跟著一個相應的語句塊。

你也可以在一個if塊中使用另外一個if語句,這被稱為嵌套的if語句。

elif和else部分是可選的。一個最簡單的有效if語句是:

if True:    print('Yes, it is true')

在Python執行完一個完整的if語句以及與它相關聯的elifelse從句之後,它移向if語句塊的下一個語句。

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

2、while語句:

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

例如:

# Filename: while.py number = 23running = True while running:    guess = int(input('Enter an integer : '))     if guess == number:        print('Congratulations, you guessed it.')        running = False # this causes the while loop to stop    elif guess < number:        print('No, it is a little higher than that.')    else:        print('No, it is a little lower than that.')else:    print('The while loop is over.')    # Do anything else you want to do here print('Done')

輸出:

C:\Users\Administrator>python D:\python\while.py

Enter an integer : 50

No, it is a little lower than that.

Enter an integer : 22

No, it is a little higher than that.

Enter an integer : 23

Congratulations, you guessed it.

The while loop is over.

Done

在這個程式中,我們仍然使用了猜數遊戲作為例子,但是這個例子的優勢在於使用者可以不斷的猜數,直到他猜對為止——這樣就不需要像前面那個例子那樣為每次猜測重複執行一遍程式。這個例子恰當地說明了while語句的使用。

我們把input和if語句移到了while迴圈內,並且在while迴圈開始前把running變數設定為True。首先,我們檢驗變數running是否為True,然後執行後面的 while-塊 。在執行了這塊程式之後,再次檢驗條件,在這個例子中,條件是running變數。如果它是真的,我們再次執行while-塊,否則,我們繼續執行可選的else-塊,並接著執行下一個語句。

當while迴圈條件變為False的時候,else塊才被執行——甚至可能是在條件第一次被檢驗的時候就被執行了。如果while迴圈有一個else從句,它將始終被執行,除非你的while迴圈將永遠迴圈下去不會結束!

註:在這裡(迴圈內部沒有break的情況)其實else塊事實上是多餘的,因為你可以把其中的語句放在同一塊(與while相同)中,跟在while語句之後,這樣可以取得相同的效果。

True和False被稱為布爾類型。可以分別把它們等效地理解為值1和0。在檢驗重要條件的時候,布爾類型十分重要,它們並不是真實的值1。

3、for迴圈:

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

例如:

# Filename: for.py for i in range(1, 5):    print(i)else:    print('The for loop is over')

輸出:

C:\Users\Administrator>python D:\python\for.py

1

2

3

4

The for loop is over

工作原理:

在這個程式中,我們列印了一個 序列 的數。我們使用內建的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的值。
  • else部分是可選的。如果包含else,它總是在for迴圈結束後執行一次,除非遇到break語句。
  • for..in迴圈對於任何序列都適用。這裡我們使用的是一個由內建range函數產生的數的列表,但是廣義說來我們可以使用任何種類的由任何對象組成的序列!
  • Python的for迴圈從根本上不同於C/C++的for迴圈。C#程式員會注意到Python的for迴圈與C#中的foreach迴圈十分類似。Java程式員會注意到它與Java 1.5中的for (int i : IntArray)相似。在C/C++中,如果你想要寫for (int i = 0; i < 5; i++),那麼用Python,你寫成for i in range(0,5)。你會注意到,Python的for迴圈更加簡單、明白、不易出錯。
4、break語句:

break語句是用來終止迴圈語句的,即哪怕迴圈條件沒有稱為False或序列還沒有被完全遞迴,也停止執行迴圈語句。

註:如果你從for或while迴圈中 終止 ,任何對應的迴圈else塊將不執行。

例如:

# Filename: break.py while True:    s = input('Enter something : ')    if s == 'quit':        break    print('Length of the string is', len(s))print('Done')

輸出:

C:\Users\Administrator>python D:\python\break.py

Enter something : Programming is fun

Length of the string is 18

Enter something : When the work is done

Length of the string is 21

Enter something : if you wanna make your work also fun:

Length of the string is 37

Enter something :  use Python!

Length of the string is 12

Enter something : quit

Done

工作原理:

在這個程式中,我們反覆地取得使用者地輸入,然後列印每次輸入地長度。我們提供了一個特別的條件來停止程式,即檢驗使用者的輸入是否是'quit'。通過 終止 迴圈到達程式結尾來停止程式。

輸入字串的長度通過內建的len函數取得。

break語句也可以在for迴圈中使用。

6、continue語句:

continue語句被用來告訴Python跳過當前迴圈塊中的剩餘語句,然後繼續進行下一輪迴圈。

例如:

# Filename: continue.py while True:    s = input('Enter something : ')    if s == 'quit':        break    if len(s) < 3:        print('Too small')        continue    print('Input is of sufficient length')    # Do other kinds of processing here...

輸出:

C:\Users\Administrator>python D:\python\continue.py

Enter something : a

Too small

Enter something : 12

Too small

Enter something : abc

Input is of sufficient length

Enter something : quit

工作原理:

在這個程式中,我們從使用者處取得輸入,但是我們僅僅當它們有至少3個字元長的時候才處理它們。所以,我們使用內建的len函數來取得長度。如果長度小於3,我們將使用continue語句忽略塊中的剩餘的語句。否則,這個迴圈中的剩餘語句將被執行,我們可以在這裡做我們希望的任何處理。

註:continue語句對於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.