詳解Python中while無限迭代循環(huán)方法
前言
Python 有 while 語句和 for 語句作為循環(huán)處理。雖然 for 語句具有一定數(shù)量的進程,但 while 語句是『直到滿足條件』類型的循環(huán)進程。
對于無限迭代 while,循環(huán)執(zhí)行的次數(shù)沒有事先明確指定。相反,只要滿足某些條件指定的塊就會重復(fù)執(zhí)行。
使用定義迭代 for,指定塊將被執(zhí)行的次數(shù)在循環(huán)開始時已經(jīng)倍明確指定。
除了 while 語句的一般特性之外,Python 也有自己的規(guī)范,例如對 do while 語句的支持不足。循環(huán)處理是編程的基本語法。
while循環(huán)

while <布爾計算的表達式>:
<執(zhí)行的python語句> # 循環(huán)體
控制表達式 ,<布爾計算的表達式> 通常涉及一個或多個變量,這些變量在開始循環(huán)之前被初始化,然后在循環(huán)體的某處可能會被修改。
當(dāng) while 遇到循環(huán)時,首先在 Boolean context 中 <布爾計算的表達式> 進行評估。
n = 5
while n > 0:
n -= 1
print(n)輸出:
4
3
2
1
0
while 首先測試循環(huán)的控制表達式。假設(shè)開始就為假,則循環(huán)體將永遠不會被執(zhí)行。
n = 5
while n > 5:
n -= 1
print(n)
break語句 和 continue語句
while 循環(huán)的整個主體都在每次迭代中執(zhí)行,Python 提供了兩個過早終止循環(huán)迭代的關(guān)鍵字。
- break 語句立即完全終止循環(huán)。程序執(zhí)行繼續(xù)到循環(huán)體之后的第一條語句。
- continue 語句立即終止當(dāng)前循環(huán)迭代。執(zhí)行跳轉(zhuǎn)到循環(huán)的頂部,并重新評估控制表達式以確定循環(huán)是再次執(zhí)行還是終止。

# break 舉例
n = 5
while n > 0:
n -= 1
if n == 2:
break
print(n)
print('循環(huán)結(jié)束。')
輸出:
4
3
循環(huán)結(jié)束。
# continue 舉例
n = 5
while n > 0:
n -= 1
if n == 2:
continue
print(n)
print('循環(huán)結(jié)束。')
輸出:
4
3
1
0
循環(huán)結(jié)束。
else 子句
Python 允許在循環(huán)else結(jié)束時使用可選子句。

while <布爾計算的表達式>:
<執(zhí)行的python語句> # 循環(huán)體
else:
<循環(huán)終止后執(zhí)行語句>
n = 5
while n > 0:
n -= 1
print(n)
else:
print('Loop done.')輸出:
4
3
2
1
0
Loop done.
# 如果有break某些情況下就不會倍執(zhí)行
n = 5
while n > 0:
n -= 1
print(n)
if n == 2:
break
else:
print('循環(huán)結(jié)束。')輸出:
4
3
2
無限循環(huán)
假設(shè)編寫了一個while理論上永遠不會結(jié)束的循環(huán)。

while True:
print('真·三國無雙')
真·三國無雙
真·三國無雙
.
.
.
真·三國無雙
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyboardInterrupt
這樣的循環(huán)只能手動停止。
單實際上也有它的應(yīng)用,例如循環(huán)刪除列表中的元素。
list_ = ['真·三國無雙', '真·三國無雙', '真·三國無雙']
while True:
if not list_ :
break
print(list_ .pop(-1))輸出:
真·三國無雙
真·三國無雙
真·三國無雙
可以 break 在循環(huán)中指定多個語句。可以通過 break 從幾個不同的位置結(jié)束循環(huán),而不必在循環(huán)頭中指定所有終止條件。
while True:
if <布爾計算的表達式1>: # 條件判斷1
break
if <布爾計算的表達式2>: # 條件判斷2
break
if <布爾計算的表達式3>: # 條件判斷3
break
嵌套while循環(huán)
Python 控制結(jié)構(gòu)可以相互嵌套。
if age < 18:
if gender == 'M':
print('子供')
else:
print('娘')
elif age >= 18 and age < 65:
if gender == 'M':
print('父親')
else:
print('母親')
else:
if gender == 'M':
print('おじいさん')
else:
print('祖母')
while循環(huán)可以包含在另一個while循環(huán)中。
list_ = ['父親', '母親']
while len(list_ ):
print(list_.pop(0))
list__ = ['おじいさん', '祖母']
while len(list__ ):
print('>', list__.pop(0))輸出:
父親
> おじいさん
> 祖母
母親
> おじいさん
> 祖母
在嵌套循環(huán)中找到的 break 語句適用于最近的封閉循環(huán)。
while <布爾計算的表達式1>:
statement
statement
while <布爾計算的表達式2>:
statement
statement
break # 適用于 while <布爾計算的表達式2>: 循環(huán)
break # 適用于 while <布爾計算的表達式1>: 循環(huán)
while循環(huán)可以嵌套在 if、elif、else 語句中。
if <布爾計算的表達式1>:
<python執(zhí)行語句1>
while <布爾計算的表達式2>:
<python執(zhí)行語句2>
<python執(zhí)行語句3>
else:
while <布爾計算的表達式3>:
<python執(zhí)行語句4>
<python執(zhí)行語句5>
<python執(zhí)行語句6>
while <布爾計算的表達式1>:
if <布爾計算的表達式2>:
<python執(zhí)行語句1>
elif <布爾計算的表達式3>:
<python執(zhí)行語句2>
else:
<python執(zhí)行語句3>
if <布爾計算的表達式4>:
<python執(zhí)行語句4>
單行 while 循環(huán)
與 if 語句一樣,while 可以在一行中指定循環(huán)。也可以用 ;組成多個循環(huán)體語句。
n = 5 while n > 0: n -= 1; print(n)
輸出:
4
3
2
1
0
兩個復(fù)合語句組合成簡寫方式是不可以的。
if True: print('data')
data
while n > 0: n -= 1; if True: print('data')
SyntaxError: invalid syntax
以上就是詳解Python中while無限迭代循環(huán)方法的詳細內(nèi)容,更多關(guān)于Python while無限迭代的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Java中MultipartFile與File互轉(zhuǎn)的實現(xiàn)
本文主要介紹了Java中MultipartFile與File互轉(zhuǎn)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
Python解決多線程運行異步代碼報錯"There?is?no?current?event?loop
在Python開發(fā)中,我們經(jīng)常需要同時處理高并發(fā)網(wǎng)絡(luò)請求和CPU密集型任務(wù),不過當(dāng)嘗試在多線程環(huán)境中運行異步代碼時,可能會報錯"There?is?no?current?event?loop",下面我們看看具體的解決方法吧2025-04-04
python批量插入數(shù)據(jù)到mysql的3種方法
這篇文章主要給大家介紹了關(guān)于python批量插入數(shù)據(jù)到mysql的3種方法,在日常處理數(shù)據(jù)的過程中,我們都有批量寫入數(shù)據(jù)庫的需求,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2023-10-10

