- Python 3.6從入門到精通(視頻教學版)
- 王英英
- 828字
- 2019-12-06 14:20:06
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 運行結果
- 大學計算機基礎(第二版)
- Python Game Programming By Example
- Backbone.js Blueprints
- Go語言開發實戰(慕課版)
- ActionScript 3.0從入門到精通(視頻實戰版)
- Hacking Android
- FusionCharts Beginner’s Guide:The Official Guide for FusionCharts Suite
- Java Web動態網站開發(第2版·微課版)
- INSTANT LESS CSS Preprocessor How-to
- 循序漸進Vue.js 3前端開發實戰
- Expert Cube Development with SSAS Multidimensional Models
- FORTRAN程序設計權威指南
- Learning PowerShell DSC(Second Edition)
- Web 2.0策略指南
- Boost.Asio C++ Network Programming Cookbook