if語句用以檢查條件:若是條件爲真(True),將運行一塊語句(稱做 if-block 或 if 塊),不然將運行另外一塊語句(稱做 else-block 或 else 塊)。其中else 從句是可選的。 python
案例 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語句執行完畢後執行
輸出:oop
$ 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是如何工做的:ui
在這個程序中,咱們根據用戶猜想的數字來檢查這一數字是不是咱們設置的。咱們將變量number設爲任何咱們所但願的整數,例如23。而後,經過input()函數來獲取用戶的猜想數。spa
咱們爲內置的input()函數提供一串打印到屏幕上的字符串並等待用戶的輸入。一旦輸入了某些內容並按下鍵盤上的Enter鍵, input()函數將以字符串的形式返回咱們所輸入的內容。而後經過int這個類(class)將這個字符串轉換成一個整數並將其儲存在變量guess中。code
接下來,將用戶提供的猜想數與咱們所選擇的數字進行對比。若是相等,就打印一條成功信息。在這裏要注意到咱們使用縮進級別來告訴Python哪些語句分別屬於哪一個塊。這即是爲何在 Python 中縮進如此重要。對象
另外須要注意的是if語句在結尾處包含一個冒號——藉此向 Python 指定接下來會有一塊語句在後頭。blog
而後,檢查猜想數是否小於咱們選擇的數字,若是是,將告訴用戶必須猜一個更高一些的數字。在這裏咱們使用的是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語句是循環 (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語句是另外一種循環語句,特色是會在一系列對象上進行迭代(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)循環語句,也就是停止循環語句的執行,即便循環條件沒有變動爲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.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循環。