Python中的循環(huán)控制語(yǔ)句使用詳解
在代碼中有的時(shí)候我們需要程序不斷地重復(fù)執(zhí)行某一種操作,例如我們需要不停的判斷某一列表中存放的數(shù)據(jù)是否大于 0,這個(gè)時(shí)候就需要使用循環(huán)控制語(yǔ)句。
1. while 循環(huán)語(yǔ)句
1.1 功能與語(yǔ)法
程序的循環(huán)結(jié)構(gòu)允許多次執(zhí)行相同的代碼塊,如下圖所示:

圖:while 循環(huán)結(jié)構(gòu)
在循環(huán)結(jié)構(gòu)中,程序的執(zhí)行流程為:
- 判斷循環(huán)條件
- 如果為真,則執(zhí)行循環(huán)中的代碼塊;執(zhí)行后跳轉(zhuǎn)到步驟 1,重復(fù)第 1 步和第 2 步.
- 如果為假,則循環(huán)結(jié)束
Python 提供了 while 語(yǔ)句用于循環(huán)控制,語(yǔ)法如下:
while 條件:
代碼塊當(dāng)循環(huán)條件為真時(shí),程序會(huì)反復(fù)執(zhí)行代碼塊,直至循環(huán)條件為假。
1.2 例子
編寫程序,如下所示:
實(shí)例演示
number = 1
while number <= 3:
print(number)
number = number + 1
print('END')點(diǎn)擊 "運(yùn)行案例" 可查看在線運(yùn)行效果
- 在第 1 行,設(shè)置變量 number 的初值為 1
- 在第 2 行,判斷變量 number 是否小于等于 3,執(zhí)行 4 次條件判斷
- 第 1 次條件判斷時(shí),number 等于 1,打印 1,將 number 遞增為 2
- 第 2 次條件判斷時(shí),number 等于 2,打印 2,將 number 遞增為 3
- 第 3 次條件判斷時(shí),number 等于 3,打印 3,將 number 遞增為 4
- 第 4 次條件判斷時(shí),number 等于 4,循環(huán)結(jié)束,執(zhí)行第 5 行,打印 END
程序輸出結(jié)果為:
1
2
3
END
2. for 循環(huán)語(yǔ)句
2.1 功能與語(yǔ)法
Python 提供了 for 語(yǔ)句用于遍歷序列中的元素,語(yǔ)法如下所示:
for 循環(huán)變量 in 序列:
代碼塊假設(shè)序列中包含有 N 個(gè)元素:A1、A2、…、An,使用 for 語(yǔ)句遍歷該序列的過(guò)程如下:
- for 語(yǔ)句中的代碼塊會(huì)執(zhí)行 N 次
- 第 1 次執(zhí)行時(shí),循環(huán)變量的值為 A1
- 第 2 次執(zhí)行時(shí),循環(huán)變量的值為 A2
- …
- 第 N 次執(zhí)行時(shí),循環(huán)變量的值為 An
for 語(yǔ)句用于遍歷序列中的元素,這里所講的序列是廣義的,可以是:
- 列表
- 元組
- 集合
- range 對(duì)象
2.2 遍歷列表
實(shí)例演示
for item in ['www', 'imooc', 'com']:
print(item)點(diǎn)擊 "運(yùn)行案例" 可查看在線運(yùn)行效果
程序的輸出結(jié)果如下:
www
imooc
com
2.3 遍歷元組
實(shí)例演示
for item in ('www', 'imooc', 'com'):
print(item)點(diǎn)擊 "運(yùn)行案例" 可查看在線運(yùn)行效果
程序的輸出結(jié)果如下:
www
imooc
com
2.4 遍歷集合
實(shí)例演示
for item in {'www', 'imooc', 'com'}:
print(item)點(diǎn)擊 "運(yùn)行案例" 可查看在線運(yùn)行效果
程序的輸出結(jié)果如下:
www
imooc
com
2.5 遍歷 range 對(duì)象
Python 中 range 對(duì)象表示一定范圍的整數(shù)序列,它有兩種形式:
- range (number) 表示區(qū)間 [0, number) 內(nèi)的整數(shù)序列,該區(qū)間從 0 開(kāi)始、到 number 結(jié)束,不包含 number。
- range (start, end) 表示區(qū)間 [start, end) 內(nèi)的整數(shù)序列,該區(qū)間從 start 開(kāi)始、到 end 結(jié)束,不包含 end。
- 例子:遍歷 range (3)
實(shí)例演示
for item in range(3):
print(item)點(diǎn)擊 "運(yùn)行案例" 可查看在線運(yùn)行效果
range (3) 表示 0、1、2 這三個(gè)整數(shù)構(gòu)成的序列,程序的輸出結(jié)果如下:
0
1
2
- 例子:遍歷 range (1, 3)
實(shí)例演示
for item in range(1, 3):
print(item)點(diǎn)擊 "運(yùn)行案例" 可查看在線運(yùn)行效果
range (1,3) 表示 1、2 這兩個(gè)整數(shù)構(gòu)成的序列,程序的輸出結(jié)果如下:
1
2
3. break 語(yǔ)句
3.1 功能與語(yǔ)法
在通常的循環(huán)中,當(dāng)條件為假時(shí),循環(huán)才會(huì)終止,有些情況下,希望能夠提前從循環(huán)中退出。
Python 提供了 break 語(yǔ)句用于從循環(huán)中退出,如下圖所示:

圖:break 語(yǔ)句
- 當(dāng)條件為假時(shí),循環(huán)結(jié)束,程序流程到達(dá)出口
- 當(dāng)條件為真時(shí),執(zhí)行條件為真的分支中的代碼塊
- 如果代碼塊中包含有 break 語(yǔ)句
- break 語(yǔ)句會(huì)中斷當(dāng)前的循環(huán)執(zhí)行流程,直接跳轉(zhuǎn)到程序的出口
3.2 例子
編寫程序檢測(cè) number 是否為素?cái)?shù),將檢測(cè)結(jié)果保存在變量 is_prime 中,如下所示:
實(shí)例演示
number = 9
is_prime = True
factor = 2
while factor < number:
print(factor)
if number % factor == 0:
is_prime = False
break
factor = factor + 1
print(is_prime)點(diǎn)擊 "運(yùn)行案例" 可查看在線運(yùn)行效果
- 在第 1 行,設(shè)置 number 為 9,程序檢測(cè) number 是否為素?cái)?shù)
- 在第 2 行,設(shè)置檢測(cè)結(jié)果 is_prime 初值為 True
- 在第 3 行,設(shè)置循環(huán)變量 factor 為 2
- 在第 4 行,判斷循環(huán)變量 factor 是否小于 number
- 在第 9 行,循環(huán)變量 factor 自增 1
- 在第 6 行,判斷 factor 是否是 number 的因子
- 如果 factor 是 number 的因子,則 number 不是素?cái)?shù)
- 在第 6 行,將結(jié)果記錄在變量 is_prime 中
- 在第 7 行,已經(jīng)檢測(cè)到 number 不是素?cái)?shù),因此可以提前退出循環(huán)
運(yùn)行程序,輸出結(jié)果如下:
2
3
False
4. continue 語(yǔ)句
4.1 功能與語(yǔ)法
在通常的循環(huán)中,循環(huán)塊中的語(yǔ)句是順序執(zhí)行的,有些情況下,希望能夠跳過(guò)循環(huán)塊中的剩余語(yǔ)句。Python 提供了 continue 語(yǔ)句用于跳過(guò)循環(huán)塊中的剩余語(yǔ)句,如下圖所示:

圖:continue 語(yǔ)句
- 當(dāng)條件為假時(shí),循環(huán)結(jié)束,程序流程到達(dá)出口
- 當(dāng)條件為真時(shí),執(zhí)行條件為真的分支中的代碼塊
- 如果代碼塊中包含有 continue 語(yǔ)句
- break 語(yǔ)句會(huì)中斷當(dāng)前的循環(huán)執(zhí)行流程,直接跳轉(zhuǎn)到循環(huán)條件處
4.2 例子
編寫程序計(jì)算列表中正數(shù)的累加和,代碼如下:
list1 = [1,2,3,4,5,6] list1_sum = 0 for i in list1: if i % 2 != 0: continue list1_sum += i print(list1_sum)
- 在第 1,2 行,設(shè)定一個(gè)含有六個(gè)元素的列表,并定義一個(gè)結(jié)果變量;
- 在第 3 行,使用 for 循環(huán)遍歷這個(gè)列表;
- 在第 4 行,判斷元素是否是偶數(shù),不是偶數(shù)則使用 continue 關(guān)鍵字跳出本次循環(huán)
- 在第 6 行,能夠執(zhí)行到這里說(shuō)明元素是偶數(shù),則追加到結(jié)果變量上。
程序運(yùn)行的輸出結(jié)果如下:
12
5. else 語(yǔ)句
5.1 在 while 循環(huán)中使用 else 語(yǔ)句
while 語(yǔ)句中提供了 else 語(yǔ)句,語(yǔ)法如下:
while 條件:
代碼塊 1
else:
代碼塊 2- 當(dāng)循環(huán)條件為真時(shí),執(zhí)行代碼塊 1
- 當(dāng)循環(huán)條件為假時(shí),執(zhí)行代碼塊 2
編寫程序 ,如下所示:
實(shí)例演示
number = 1
while number <= 3:
print(number)
number = number + 1
else:
print('At the end:', number)點(diǎn)擊 "運(yùn)行案例" 可查看在線運(yùn)行效果
程序輸出結(jié)果為:
1
2
3
At the end: 4
5.2 在 for 循環(huán)中使用 else 語(yǔ)句
for 語(yǔ)句中提供了 else 語(yǔ)句,語(yǔ)法如下:
for 變量 in 序列:
代碼塊 1
else:
代碼塊 2- 當(dāng)循環(huán)條件為真時(shí),執(zhí)行代碼塊 1
- 當(dāng)循環(huán)條件為假時(shí),執(zhí)行代碼塊 2
編寫程序,如下所示:
實(shí)例演示
for number in range(1, 4):
print(number)
else:
print('At the end:', number)點(diǎn)擊 "運(yùn)行案例" 可查看在線運(yùn)行效果
程序輸出結(jié)果為:
1
2
3
At the end: 3
5.3 一個(gè)有意義的例子
else 語(yǔ)句通常用于當(dāng)循環(huán)非正常退出的場(chǎng)景中,一個(gè)有意義的例子如下:
實(shí)例演示
number = 9
factor = 2
while factor < number:
print(factor)
if number % factor == 0:
is_prime = False
break
factor = factor + 1
else:
is_prime = True
print(is_prime)點(diǎn)擊 "運(yùn)行案例" 可查看在線運(yùn)行效果
該程序檢測(cè) number 是否為素?cái)?shù),將檢測(cè)結(jié)果保存在變量 is_prime 中
在第 1 行,設(shè)置 number 為 9,程序檢測(cè) number 是否為素?cái)?shù)
在第 2 行,設(shè)置循環(huán)變量 factor 為 2
- 在第 3 行,判斷循環(huán)變量 factor 是否小于 number
- 在第 8 行,循環(huán)變量 factor 自增 1
在第 5 行,判斷 factor 是否是 number 的因子
- 如果 factor 是 number 的因子,則 number 不是素?cái)?shù)
- 在第 6 行,將結(jié)果記錄在變量 is_prime 中
- 在第 7 行,提前退出循環(huán)
在第 9 行,依次測(cè)試 2、3、4、5、6、7、8 是否為 number 的因子
- 如果都不是 number 的因子,則說(shuō)明 number 是素?cái)?shù)
- 在第 10 行,將結(jié)果記錄在變量 is_prime 中
運(yùn)行程序,輸出結(jié)果如下:
2
3
False
上述的例子,使用 for 循環(huán)改寫,如下所示:
實(shí)例演示
number = 9
for factor in range(2, number):
print(factor)
if number % factor == 0:
is_prime = False
break
else:
is_prime = True
print(is_prime)點(diǎn)擊 "運(yùn)行案例" 可查看在線運(yùn)行效果
運(yùn)行程序,輸出相同的結(jié)果,如下所示:
2
3
False
總結(jié)
Python 中的循環(huán)控制語(yǔ)句只有 for 和 While 兩種,不同于 C 或者 Java 等其他編程語(yǔ)言還有 do…while。循環(huán)控制語(yǔ)句和分級(jí)結(jié)構(gòu)語(yǔ)句一樣在工作中經(jīng)常會(huì)用到。
大家多想想在編程中有什么地方是需要用到 循環(huán)控制語(yǔ)句的,想到之后不妨用代碼實(shí)現(xiàn)一下。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python實(shí)現(xiàn)撲克牌交互式界面發(fā)牌程序
這篇文章主要介紹了python實(shí)現(xiàn)撲克牌交互式界面發(fā)牌程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-04-04
Python實(shí)現(xiàn)計(jì)算圖像RGB均值方式
這篇文章主要介紹了Python實(shí)現(xiàn)計(jì)算圖像RGB均值方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06
python實(shí)戰(zhàn)之PyQt5實(shí)現(xiàn)漫畫(huà)臉
本文詳細(xì)講解了python實(shí)戰(zhàn)之PyQt5實(shí)現(xiàn)漫畫(huà)臉的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-12-12
Python的scikit-image模塊實(shí)例講解
在本篇文章里小編給大家整理了一篇關(guān)于Python的scikit-image模塊實(shí)例講解內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。2020-12-12
python日期時(shí)間轉(zhuǎn)為字符串或者格式化輸出的實(shí)例
今天小編就為大家分享一篇python日期時(shí)間轉(zhuǎn)為字符串或者格式化輸出的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
Python自動(dòng)化測(cè)試PO模型封裝過(guò)程詳解
在 PO 模式中抽離封裝集成一個(gè)BasePage 類,該基類應(yīng)該擁有一個(gè)只實(shí)現(xiàn) webdriver 實(shí)例的屬性,通常情況下PO 模型可以大大提高測(cè)試用例的維護(hù)效率2021-06-06
Python中Selenium模擬JQuery滑動(dòng)解鎖實(shí)例
這篇文章主要介紹了Python中Selenium模擬JQuery滑動(dòng)解鎖實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07

