Python-控制流程語句

來源:互聯網
上載者:User

標籤:選擇   else   說明   計算   iter   隊列   fun   沒有   序列   

控制流程語句

在 Python 中有三種控制流程語句——ifforwhile

if 語句

if語句用以檢查條件:如果 條件為真(True),我們將運行一塊語句(稱作 if-block 或 if塊),否則 我們將運行另一塊語句(稱作 else-block 或 else 塊),其中 else 從句是可選的。

例子:

#Python if.pynumber = 23guess = int(input(‘Enter an integer:‘))if guess == number:    # 新塊從這裡開始    print(‘Congratulations, you guessed it.‘)    print(‘(but you do not win any prizes!)‘)    # 新塊在這裡結束elif guess < number:    # 另一代碼塊    print(‘No, it is a little higher than that‘)    # 你可以在此做任何你希望在該代碼塊內進行的事情else:    print(‘No, it is a little lower than that‘)    # 你必須通過猜測一個大於(>)設定數的數字來到達這裡。print(‘Done‘)# 這最後一句語句將在# if 語句執行完畢後執行。

輸出:

# python if.pyEnter an integer : 50No, it is a little lower than thatDone# python if.pyEnter an integer : 22No, it is a little higher than thatDone# python if.pyEnter an integer : 23Congratulations, you guessed it.(but you do not win any prizes!)Done

它是如何工作的

在這個程式中,我們根據使用者猜測的數字來檢查這一數字是否是我們之前所設定的。我們將變數number 設為任何我們所希望的整數,例如23 ,然後,我們通過input()函數來擷取使用者的猜測數。所謂函數是一種可重複使用的程式。

input() 函數將以字串的形式返回我們所輸入的內容。然後我們通過int 將這個字串轉換成一個整數並將其儲存在變數 guess 中。實際上,int是一個類(Class),我們可以使用它將一串字串轉換成一個整數。

接下來,我們將使用者提供的猜測數與我們所選擇的數字進行對比,如果它們相等,我們就列印一條成功資訊。

然後,我們檢查猜測數是否小於我們設定的數字,如果是,我們將告訴使用者他們必須猜一個更高一些的數字。在這裡我們使用的是elif語句,它們實際上將兩個相連的if else-if else語句合并成一句 if-elif-else語句。

當 Python 完整執行了if語句及與其相關的elifelse子句後,它將會移動至包含if語句的代碼塊的下一句語句中。在本例中,也就是主代碼塊(程式開始執行的地方),其下一句語句就是 print(‘Done‘) 語句。

在完成這些工作後,Python 會發現已行至程式末尾並宣告工作的完成。

注意:
  • 在這裡我們使用縮排來告訴 Python 哪些語句分別屬於哪個塊,這便是為什麼在 Python 中縮排如此重要。
  • ifelifelse 語句在結尾處包含一個冒號——我們藉此向 Python 指定接下來會有一塊語句在後頭。
  • 你可以在 if塊的 一個 if 語句中設定另一個if 語句,並可以如此進行下去——這被稱作嵌套的if語句。
  • elifelse 部分都是可選的,一個最小規模且有效 if 語句是這樣的:
if True:  print(‘Yes, it is true‘)
while 語句

while 語句能夠讓你在條件為真的前提下重複執行某塊語句,while 語句是 迴圈(Looping) 語句的一種, while 語句同樣可以擁有 else子句作為可選選項。

例子:

#Python while.pynumber = 23running = Truewhile running:    guess = int(input(‘Enter an integer:‘))    if guess == number:        print(‘Congratulations, you guessed it.‘)        # 這將導致 while 迴圈中止        running = False    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.‘)    # 在這裡你可以做你想做的任何事print(‘Done‘)

輸出:

#Python while.pyEnter an integer:50No, it is a little lower than that.Enter an integer:22No, it is a little higher than that.Enter an integer:23Congratulations, you guessed it.The while loop is over.Done

它是如何工作的?

在這一程式中,我們依舊通過猜數遊戲來示範,不過新程式的優點在於能夠允許使用者持續猜測直至他猜中為止——而無需像if所做的那樣,每次猜測都要重新運行程式。

首先我們將 inputif語句移到 while 迴圈之中,並在 while 迴圈開始前將變數running設定為True。程式開始時,我們首先檢查變數running是否為True ,之後再執行相應的 while 塊。在這一代碼塊被執行之後,將會重新對條件進行檢查,在本例中也就是running 變數。如果它依舊為True,我們將再次執行 while 塊,否則我們將繼續執行可選的else 塊,然後進入到下一個語句中。

else代碼塊在 while 迴圈的條件變為 False 時開始執行;如果 while 迴圈中存在一個 else 代碼塊,它將總是被執行,除非你通過 break 語句來中斷這一迴圈。

TrueFalse 被稱作布爾(Boolean)型,你可以將它們分別等價地視為10

for 迴圈

for...in 語句是另一種迴圈語句,其特點是會在一系列對象上進行迭代(Iterates),意即它會遍曆序列中的每一個項目。

例子:

# Python for.pyfor i in range(1, 5):    print(i)else:    print(‘The for loop is over‘)

輸出:

1234The for loop is over

它是如何工作的?

我們通過內建的range函數產生這一數字序列,使用 range時,需要提供兩個數字,range 將會返回一個數字序列,從第一個數字開始,至第二個數字結束。例子:range(1,5)將輸出序列[1, 2, 3, 4],在預設情況下,range 將會以1 逐步遞增,如果我們向 range提供第三個數字,則這個數字將成為逐步遞增的加數。舉個例子來說明,range(1,5,2) 將會輸出[1, 3]

然後 for迴圈就會在這一範圍內展開遞迴——for i in range(1,5)等價於 for i in [1,2, 3, 4] ,這個操作將依次將隊列裡的每個數字(或是對象)分配給i,一次一個,然後以每個i 的值執行語句塊,在本例中,我們這一語句塊所做的就是列印出這些值。

注意:

range(n,m)這一序列擴充直到第m-1個數字,也就是說,它不會包括第m個數字在內。

range() 每次只會產生一個數字,如果你希望獲得完整的數字列表,要在使用range() 時調用list()。例如下面這樣:list(range(5)) ,它將會返回[0, 1, 2,3, 4]

else 部分是可選的,當迴圈中包含他時,它總會在for迴圈結束後開始執行,除非程式遇到了break 語句。

break 語句

break 語句用以中斷(Break)迴圈語句,也就是中止迴圈語句的執行,即使迴圈條件沒有變更為False,或隊列中的項目尚未完全迭代時依舊中斷語句。

注意:

如果你 中斷 了一個forwhile迴圈,任何相應迴圈中的else塊都將不會被執行。

例子:

#Python break.pywhile True:    s = input("Enter something:")    if s == "quit":        break    print("Length of the string is",len(s))print("Done")

輸出:

Enter something:Programming is funLength of the string is 18Enter something:When the work is doneLength of the string is 21Enter something:if you wanna make your work also fun:Length of the string is 37Enter something:use Python!Length of the string is 11Enter something:quitDone

它是如何工作的?

通過檢查使用者輸入的是否是 quit 這一特殊條件來判斷是否應該終止程式。我們通過中斷迴圈並轉進至程式末尾來結束這一程式。

輸入字串的長度可以通過內建的 len函數來計算。

注意:

break語句同樣可以適用於for迴圈。

continue 語句

continue 語句用以告訴 Python 跳過當前迴圈塊中的剩餘語句,並繼續該迴圈的下一次迭代。

輸入:

#Python continue.pywhile True:    s = input(‘Enter something:‘)    if s == "quit":        break    if len(s)<3:        print("Too small")        continue    print("Input is of sufficient length")

輸出:

Enter something:1Too smallEnter something:12Too smallEnter something:123Input is of sufficient lengthEnter something:quit

它是如何工作的?

在本程式中,我們讀取使用者的輸入,只有在輸入的字串長度小於3 字元我們才會對其進行處理。為此,我們使用內建的len函數和來擷取字串的長度,如果其長度小於3,我們便通過使用 continue 語句跳過代碼塊中的其餘語句。否則,迴圈中的剩餘語句將被執行。

注意:

continue 語句同樣能用於 for迴圈。

總結

我們已經瞭解了三種控制流程語句—— ifwhilefor——及其相關的breakcontinue 語句是如何工作的。這些語句是 Python 中一些最常用的部分,因此,熟練使用它們是必要的。

Python-控制流程語句

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.