官术网_书友最值得收藏!

5.7 循環控制語句

循環語句主要是在滿足條件的情況下反復執行某一個操作。循環控制語句主要包括while語句和for語句。

5.7.1 while語句

while語句是循環語句,也是條件判斷語句。

while語句語法格式如下:

這里同樣需要注意冒號和縮進。

下面通過一個示例計算1~20的總和。

【例5.8】使用while循環語句(源代碼\ch05\5.8.py)。

保存并運行程序,結果如圖5-24所示。

圖5-24 運行結果

注意 如果在這里遺漏代碼行b+= 1,程序就會進入無限循環中。因為變量b的初始值為1,并且不會發生變化,所以b <= a始終為Ture,導致while循環不會停止。

要避免無限循環的問題,就必須對每個while循環進行測試,確保其會按預期的那樣結束。如果希望程序在用戶輸入特定值時結束,那么可運行程序并輸入這樣的值;如果在這種情況下程序沒有結束,那么請檢查程序處理這個值的方式,確認程序至少有一個這樣的地方能讓循環條件變為False,或者讓break語句得以執行。

如果條件表達式一直為Ture,while循環就會進入無限循環中。無限循環應用也比較廣泛,如在服務器上處理客戶端的實時請求時就非常有用。

【例5.9】while無限循環中的應用(源代碼\ch05\5.9.py)。

保存并運行程序,結果如圖5-25所示。

圖5-25 運行結果

如果用戶想退出無限循環,可以按Ctrl+C組合鍵。

當while循環體中只有一條語句時,可以將該語句與while寫在同一行中。例如:

    aa = "商品"
    while aa=="商品" :print ("這里只有一條執行語句")
    print ("商品采購完畢!")

while語句可以和else配合使用,表示當while語句的條件表達式為False時,執行else的語句塊。

【例5.10】while語句和else配合使用(源代碼\ch05\5.10.py)。

保存并運行程序,結果如圖5-26所示。

圖5-26 運行結果

5.7.2 for語句

for語句通常由條件控制和循環兩部分組成。

for語句語法格式如下:

其中,<variable>是一個變量名稱;<sequence>是一個列表。else語句運行的時機是當for語句都沒有運行,或者最后一個循環已經運行時。else語句是可以省略的。

下面實例打印變量n所有的值:

    for n in [100,200,300,400,500,600,700,800,900]:
    print (n)

執行結果如圖5-27所示。

圖5-27 運行結果

下面實例打印變量a1,a2所有的值:

    >>>a= [(100,200),(300,400),(500,600)]
    >>>for a1,a2 in a:print (a1,a2)

執行結果如圖5-28所示。

圖5-28 運行結果

若想跳出循環,則可以使用break語句,該語句用于跳出當前循環體。

【例5.11】for語句和break語句的配合使用(源代碼\ch05\5.11.py)。

保存并運行程序,結果如圖5-29所示。從結果可以看出,當搜索到西瓜時,會跳出當前循環,對應的循環else塊將不執行。

圖5-29 運行結果

5.7.3 continue語句和else語句

使用continue語句,Python將跳過當前循環塊中的剩余語句,繼續進行下一輪循環。

【例5.12】for語句和continue語句的配合使用(源代碼\ch05\5.12.py)。

保存并運行程序,結果如圖5-30所示。從結果可以看出,當變量為80時,將跳出當前循環,進入下一個循環中。

圖5-30 運行結果

當for循環被執行完畢或while循環條件為False時,else語句才會被執行。需要特別注意的是,如果循環被break語句終止,那么else語句不會被執行。

【例5.13】for、break和else語句的配合使用(源代碼\ch05\5.13.py)。

保存并運行程序,結果如圖5-31所示。從結果可以看出,當搜索到文字“不”時,將通過break語句跳出循環。

圖5-31 運行結果

5.7.4 pass語句

pass是空語句,主要為了保持程序結構的完整性。pass不做任何事情,一般用作占位語句。

【例5.14】for和pass語句配合使用實例(源代碼\ch05\5.14.py)。

保存并運行程序,結果如圖5-32所示。從結果可以看出,當搜索到文字“魚”時,先執行print ('執行pass語句'),然后執行print ('當前文字:', a)。

圖5-32 運行結果

主站蜘蛛池模板: 洞头县| 永善县| 怀来县| 嘉定区| 织金县| 榆中县| 山西省| 株洲市| 嘉定区| 万州区| 灌阳县| 襄城县| 温州市| 辽阳县| 翁牛特旗| 东平县| 苏尼特左旗| 新化县| 洞头县| 凤山县| 阜城县| 潜江市| 化德县| 扬中市| 景宁| 江西省| 封开县| 广汉市| 托克逊县| 洛川县| 沅陵县| 长岛县| 黑龙江省| 治县。| 佳木斯市| 壶关县| 宁强县| 颍上县| 罗平县| 锡林浩特市| 资中县|