-
if語句
if語句用以檢查條件:如果條件為真(True),將運行一塊語句(稱作 if-block 或 if 塊),否則將運行另一塊語句(稱作 else-block 或 else 塊)。其中else 從句是可選的。
案例 if.py
number = 23 guess = 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.py Enter an integer : 50 No, it is a little lower than that Done $ python if.py Enter an integer : 22 No, it is a little higher than that Done $ python if.py Enter an integer : 23 Congratulations, you guessed it. (but you do not win any prizes!) Done
if.py是如何工作的:
在這個程序中,我們根據用戶猜測的數字來檢查這一數字是否是我們設置的。我們將變量number設為任何我們所希望的整數,例如23。然后,通過input()函數來獲取用戶的猜測數。
我們為內置的input()函數提供一串打印到屏幕上的字符串並等待用戶的輸入。一旦輸入了某些內容並按下鍵盤上的Enter鍵, input()函數將以字符串的形式返回我們所輸入的內容。然后通過int這個類(class)將這個字符串轉換成一個整數並將其儲存在變量guess中。
接下來,將用戶提供的猜測數與我們所選擇的數字進行對比。如果相等,就打印一條成功信息。在這里要注意到我們使用縮進級別來告訴Python哪些語句分別屬於哪個塊。這便是為什么在 Python 中縮進如此重要。
另外需要注意的是if語句在結尾處包含一個冒號——借此向 Python 指定接下來會有一塊語句在后頭。
然后,檢查猜測數是否小於我們選擇的數字,如果是,將告訴用戶必須猜一個更高一些的數字。在這里我們使用的是elif語句,它們實際上將兩個相連的if else-if else 語句合並成一句 if-elif-else語句。這能夠使程序更加簡便,並且可以減少所需要的縮進量。
elif和else同樣都必須有一個冒號在其邏輯行的末尾,后面跟着相應的語句塊。
可以在 if 塊的 一個 if語句中設置另一個 if語句,並可以如此進行下去——這被稱為嵌套的if語句。
elif和else部分都是可選的。一個最小規模且有效的if語句是這樣的:
if True: print('Yes, it is true')
當 Python 完整執行了 if語句及與其相關的 elif和 else子句后,它將會移動至包含 if語句的代碼塊的下一句語句中。在本例中,也就是主代碼塊(程序開始執行的地方),其下一句語句就是 print('Done')語句。在完成這些工作后,Python 會發現已行至程序末尾並宣告工作的完成。
-
while 語句
while語句能夠在條件為真的前提下重復執行某塊語句。while語句是循環 (Looping) 語句的一種。while語句同樣可以擁有else子句作為可選選項。
案例 while.py
number = 23 running = True while 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.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.py是如何工作的:
在這一程序中,依舊通過猜數游戲來演示,不過新程序的優點在於能夠允許用戶持續猜測直至他猜中為止——而無需像在上一節中所做的那樣,每次猜測都要重新運行程序。這種變化恰到好處地演示了while語句的作用。
首先將 input與 if語句移到 while循環之中,並在 while 循環開始前將變量running 設置為 True。程序開始時,首先檢查變量 running是否為True ,之后再執行相應的 while 塊。在這一代碼塊被執行之后,將會重新對條件進行檢查,在本例中也就是 running變量。如果它依舊為True ,將再次執行 while 塊,否則將繼續執行可選的 else 塊,然后進入到下一個語句中。
else代碼塊在 while循環的條件變為 false時開始執行——這個開始的時機甚至可能是在第一次檢查條件的時候。如果 while循環中存在一個else 代碼塊,它將總是被執行, 除非通過 break語句來中斷這一循環。
-
for循環
for語句是另一種循環語句,特點是會在一系列對象上進行迭代(Iterates),即它會遍歷序列中的每一個項目。
案例 for.py
for i in range(1, 5): print(i) else: print('The for loop is over')
輸出:
$ python for.py 1
2
3
4 The for loop is over
for.py是如何工作的:
在這一程序中,打印了一序列的數字。我們通過內置的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的值執行語句塊。在本例中,這一語句塊所做的就是打印出這些值。
else部分是可選的。當循環中包含else時,它總會在for循環結束后開始執行,除非程序遇到了 break 語句。
-
break語句
break語句用以中斷(Break)循環語句,也就是中止循環語句的執行,即使循環條件沒有變更為False ,或隊列中的項目尚未完全迭代依舊如此。
有一點需要尤其注意,如果中斷了一個for 或 while循環,任何相應循環中的else塊都將不會被執行。
案例 break.py
while True: s = raw_input('Enter something : ') if s == 'quit': break
print('Length of the string is', len(s)) print('Done')
輸出:
$ 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 11 Enter something : quit Done
break.py是如何工作的:
在本程序中,重復地接受用戶的輸入內容並打印出每一次輸入內容的長度。通過檢查用戶輸入的是否是quit 這一特殊條件來判斷是否應該終止程序。我們通過中斷循環並轉進至程序末尾來結束這一程序。
輸入字符串的長度可以通過內置的len函數來找到。
break語句同樣可以適用於for 循環。
-
continue語句
案例 continue.py
while True: s = raw_input('Enter something : ') if s == 'quit': break
if len(s) < 3: print('Too small') continue
print('Input is of sufficient length') # 自此處起繼續進行其它任何處理
輸出:
$ python continue.py Enter something : a Too small Enter something : 12 Too small Enter something : abc Input is of sufficient length Enter something : quit
continue.py 是如何工作的:
在本程序中,接受來自用戶的輸入內容,但是只有在輸入的字符串其長至少 3 字符我們才會對其進行處理。為此,我們使用內置的 len函數來獲取字符串的長度,如果其長度小於3,我們便通過使用 continue語句跳過代碼塊中的其余語句。否則,循環中的剩余語句將被執行,並在此處進行我們所希望的任何類型的處理。
continue語句同樣能用於 for循環。