- Python從入門到項(xiàng)目實(shí)踐(超值版)
- 聚慕課教育研發(fā)中心
- 1253字
- 2020-01-20 14:50:21
6.6 循環(huán)結(jié)構(gòu)程序舉例
循環(huán)語句主要就是在滿足條件的情況下反復(fù)執(zhí)行某一個(gè)操作。根據(jù)循環(huán)執(zhí)行次數(shù)的確定性,循環(huán)可以分為確定次數(shù)循環(huán)和不確定次數(shù)循環(huán)。確定次數(shù)循環(huán)指循環(huán)體對循環(huán)次數(shù)有明確的定義,循環(huán)次數(shù)限制采用遍歷結(jié)構(gòu)中元素個(gè)數(shù)來體現(xiàn),也稱有限循環(huán),在Python中稱之為遍歷循環(huán)(for語句);不確定次數(shù)循環(huán)被稱為無限循環(huán),在Python中用while語句實(shí)現(xiàn)。
6.6.1 while循環(huán)結(jié)構(gòu)

while循環(huán)判斷比較簡單,當(dāng)條件判斷為True時(shí),循環(huán)體就會(huì)去重復(fù)執(zhí)行語句塊中的語句;當(dāng)條件判斷為False時(shí),則終止循環(huán)語句的執(zhí)行,同時(shí)去執(zhí)行與while同級別的后續(xù)語句。其格式如下:

下面通過一個(gè)例子來看看while循環(huán)。
【例6-11】輸入一個(gè)運(yùn)算數(shù),然后將這個(gè)數(shù)乘以2,循環(huán)5次。

程序運(yùn)行結(jié)果如圖6-23所示。

圖6-23 循環(huán)5次結(jié)果

圖6-24 循環(huán)5次流程圖
其運(yùn)行的流程圖如圖6-24所示。
在while中使用else語句,其格式如下:

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

程序運(yùn)行結(jié)果如圖6-25所示。

圖6-25 程序執(zhí)行結(jié)果
6.6.2 for循環(huán)結(jié)構(gòu)

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

其中,“循環(huán)變量”是一個(gè)變量名稱,“遍歷結(jié)構(gòu)”則是一個(gè)列表。在Python中for語句之所以稱為“遍歷循環(huán)”,是因?yàn)閒or語句執(zhí)行的次數(shù)是由“遍歷結(jié)構(gòu)”中元素的個(gè)數(shù)決定的。遍歷循環(huán)就是依次從“遍歷結(jié)構(gòu)”中取出元素,置入循環(huán)變量中,并執(zhí)行對應(yīng)的語句塊。“遍歷結(jié)構(gòu)”可以是字符串、文件、組合數(shù)據(jù)類型或range()函數(shù)。else語句只在循環(huán)正常執(zhí)行并結(jié)束時(shí)才執(zhí)行。else語句通常是被省略的。
【例6-13】定義一個(gè)字符串,然后使用for語句遍歷字符串。

程序運(yùn)行結(jié)果如圖6-26所示。

圖6-26 循環(huán)遍歷結(jié)果
【例6-14】定義一個(gè)鏈表,將鏈表里面的數(shù)字按大小順序從小到大輸出。

程序運(yùn)行結(jié)果如圖6-27所示。

圖6-27 排序結(jié)果
6.6.3 break和continue語句

在程序運(yùn)行過程中,根據(jù)程序的目的,有時(shí)需要程序在滿足另一個(gè)特定條件時(shí)跳出本次循環(huán),或者跳出本次循環(huán)去執(zhí)行另外的循環(huán)。在Python中要實(shí)現(xiàn)循環(huán)的自由轉(zhuǎn)場就要用到兩個(gè)輔助保留字:break和continue,它們用來輔助控制循環(huán)。
break語句可以在循環(huán)過程中直接退出循環(huán),而continue語句可以提前結(jié)束本輪循環(huán),并直接開始下一輪循環(huán)。這兩個(gè)語句通常都必須配合if語句使用。
要特別注意,不要濫用break和continue語句。break和continue會(huì)造成代碼執(zhí)行邏輯分叉過多,容易出錯(cuò)。大多數(shù)循環(huán)并不需要用到break和continue語句,都可以通過改寫循環(huán)條件或者修改循環(huán)邏輯,去掉break和continue語句。
有些時(shí)候,如果代碼寫得有問題,會(huì)讓程序陷入“死循環(huán)”,也就是永遠(yuǎn)循環(huán)下去。這時(shí)可以按Ctrl+C組合鍵退出程序,或者強(qiáng)制結(jié)束Python進(jìn)程。
1. break語句
【例6-15】在銀行取錢的時(shí)候,經(jīng)常看見輸入密碼只有三次機(jī)會(huì),如果三次密碼都輸錯(cuò)了,那么就輸入不了了。我們都知道,這是通過循環(huán)來判斷賬號與密碼是否匹配,如果輸入了對的密碼,將使用break跳出循環(huán)。break語句可以在循環(huán)過程中直接退出循環(huán)。

程序運(yùn)行結(jié)果如圖6-28所示。

圖6-28 登錄賬號結(jié)果
2. continue語句
continue語句可以提前結(jié)束本輪循環(huán),并直接開始下一輪循環(huán)。
【例6-16】在數(shù)字匹配游戲中,可以清晰地感受到break與continue的不同,當(dāng)匹配的數(shù)字是4時(shí),在結(jié)束循環(huán)時(shí),輸出的是數(shù)字5。

程序運(yùn)行結(jié)果如圖6-29所示。

圖6-29 字符匹配結(jié)果
- Functional Python Programming
- C++程序設(shè)計(jì)教程
- GAE編程指南
- Android Jetpack開發(fā):原理解析與應(yīng)用實(shí)戰(zhàn)
- FFmpeg入門詳解:音視頻流媒體播放器原理及應(yīng)用
- Mastering PHP Design Patterns
- Android 7編程入門經(jīng)典:使用Android Studio 2(第4版)
- JavaScript+Vue+React全程實(shí)例
- Julia Cookbook
- Visual Basic程序設(shè)計(jì)習(xí)題與上機(jī)實(shí)踐
- Processing創(chuàng)意編程指南
- Image Processing with ImageJ
- Mudbox 2013 Cookbook
- 數(shù)據(jù)結(jié)構(gòu):Python語言描述
- Xamarin Cross-Platform Development Cookbook