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

6.6 循環結構程序舉例

循環語句主要就是在滿足條件的情況下反復執行某一個操作。根據循環執行次數的確定性,循環可以分為確定次數循環和不確定次數循環。確定次數循環指循環體對循環次數有明確的定義,循環次數限制采用遍歷結構中元素個數來體現,也稱有限循環,在Python中稱之為遍歷循環(for語句);不確定次數循環被稱為無限循環,在Python中用while語句實現。

6.6.1 while循環結構

while循環判斷比較簡單,當條件判斷為True時,循環體就會去重復執行語句塊中的語句;當條件判斷為False時,則終止循環語句的執行,同時去執行與while同級別的后續語句。其格式如下:

下面通過一個例子來看看while循環。

【例6-11】輸入一個運算數,然后將這個數乘以2,循環5次。

程序運行結果如圖6-23所示。

圖6-23 循環5次結果

圖6-24 循環5次流程圖

其運行的流程圖如圖6-24所示。

在while中使用else語句,其格式如下:

【例6-12】輸入一個小于5的數,每次加1,直到其不小于5為止。

程序運行結果如圖6-25所示。

圖6-25 程序執行結果

6.6.2 for循環結構

for語句通常由兩部分組成,一是條件控制部分,二是循環部分。for語句語法格式如下所示。

其中,“循環變量”是一個變量名稱,“遍歷結構”則是一個列表。在Python中for語句之所以稱為“遍歷循環”,是因為for語句執行的次數是由“遍歷結構”中元素的個數決定的。遍歷循環就是依次從“遍歷結構”中取出元素,置入循環變量中,并執行對應的語句塊。“遍歷結構”可以是字符串、文件、組合數據類型或range()函數。else語句只在循環正常執行并結束時才執行。else語句通常是被省略的。

【例6-13】定義一個字符串,然后使用for語句遍歷字符串。

程序運行結果如圖6-26所示。

圖6-26 循環遍歷結果

【例6-14】定義一個鏈表,將鏈表里面的數字按大小順序從小到大輸出。

程序運行結果如圖6-27所示。

圖6-27 排序結果

6.6.3 break和continue語句

在程序運行過程中,根據程序的目的,有時需要程序在滿足另一個特定條件時跳出本次循環,或者跳出本次循環去執行另外的循環。在Python中要實現循環的自由轉場就要用到兩個輔助保留字:break和continue,它們用來輔助控制循環。

break語句可以在循環過程中直接退出循環,而continue語句可以提前結束本輪循環,并直接開始下一輪循環。這兩個語句通常都必須配合if語句使用。

要特別注意,不要濫用break和continue語句。break和continue會造成代碼執行邏輯分叉過多,容易出錯。大多數循環并不需要用到break和continue語句,都可以通過改寫循環條件或者修改循環邏輯,去掉break和continue語句。

有些時候,如果代碼寫得有問題,會讓程序陷入“死循環”,也就是永遠循環下去。這時可以按Ctrl+C組合鍵退出程序,或者強制結束Python進程。

1. break語句

【例6-15】在銀行取錢的時候,經常看見輸入密碼只有三次機會,如果三次密碼都輸錯了,那么就輸入不了了。我們都知道,這是通過循環來判斷賬號與密碼是否匹配,如果輸入了對的密碼,將使用break跳出循環。break語句可以在循環過程中直接退出循環。

程序運行結果如圖6-28所示。

圖6-28 登錄賬號結果

2. continue語句

continue語句可以提前結束本輪循環,并直接開始下一輪循環。

【例6-16】在數字匹配游戲中,可以清晰地感受到break與continue的不同,當匹配的數字是4時,在結束循環時,輸出的是數字5。

程序運行結果如圖6-29所示。

圖6-29 字符匹配結果

主站蜘蛛池模板: 大足县| 莱西市| 兴安县| 丹江口市| 宁武县| 松滋市| 新野县| 化德县| 张家口市| 务川| 安陆市| 浮梁县| 新干县| 类乌齐县| 昭觉县| 许昌市| 顺平县| 措勤县| 大丰市| 盐源县| 苏尼特右旗| 临漳县| 神池县| 河源市| 略阳县| 池州市| 禄丰县| 枣强县| 德兴市| 璧山县| 尼木县| 浦东新区| 神农架林区| 承德市| 睢宁县| 平顶山市| 宜兰县| 西乌| 旅游| 保定市| 三江|