溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python中while無限迭代循環(huán)怎么實(shí)現(xiàn)

發(fā)布時(shí)間:2022-05-05 13:50:17 來源:億速云 閱讀:241 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要講解了“Python中while無限迭代循環(huán)怎么實(shí)現(xiàn)”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Python中while無限迭代循環(huán)怎么實(shí)現(xiàn)”吧!

前言

Python 有 while 語句和 for 語句作為循環(huán)處理。雖然 for 語句具有一定數(shù)量的進(jìn)程,但 while 語句是『直到滿足條件』類型的循環(huán)進(jìn)程。

對(duì)于無限迭代 while,循環(huán)執(zhí)行的次數(shù)沒有事先明確指定。相反,只要滿足某些條件指定的塊就會(huì)重復(fù)執(zhí)行。

使用定義迭代 for,指定塊將被執(zhí)行的次數(shù)在循環(huán)開始時(shí)已經(jīng)倍明確指定。

除了 while 語句的一般特性之外,Python 也有自己的規(guī)范,例如對(duì) do while 語句的支持不足。循環(huán)處理是編程的基本語法。

while循環(huán)

Python中while無限迭代循環(huán)怎么實(shí)現(xiàn)

while <布爾計(jì)算的表達(dá)式>:
    <執(zhí)行的python語句> # 循環(huán)體

控制表達(dá)式 ,<布爾計(jì)算的表達(dá)式> 通常涉及一個(gè)或多個(gè)變量,這些變量在開始循環(huán)之前被初始化,然后在循環(huán)體的某處可能會(huì)被修改。

當(dāng) while 遇到循環(huán)時(shí),首先在 Boolean context 中 <布爾計(jì)算的表達(dá)式> 進(jìn)行評(píng)估。

n = 5
while n > 0:
    n -= 1
    print(n)

輸出:

4
3
2
1
0

while 首先測(cè)試循環(huán)的控制表達(dá)式。假設(shè)開始就為假,則循環(huán)體將永遠(yuǎn)不會(huì)被執(zhí)行。

n = 5
while n > 5:
    n -= 1
    print(n)

break語句 和 continue語句

while 循環(huán)的整個(gè)主體都在每次迭代中執(zhí)行,Python 提供了兩個(gè)過早終止循環(huán)迭代的關(guān)鍵字。

  • break 語句立即完全終止循環(huán)。程序執(zhí)行繼續(xù)到循環(huán)體之后的第一條語句。

  • continue 語句立即終止當(dāng)前循環(huán)迭代。執(zhí)行跳轉(zhuǎn)到循環(huán)的頂部,并重新評(píng)估控制表達(dá)式以確定循環(huán)是再次執(zhí)行還是終止。

Python中while無限迭代循環(huán)怎么實(shí)現(xiàn)

# 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é)束時(shí)使用可選子句。

Python中while無限迭代循環(huán)怎么實(shí)現(xiàn)

while <布爾計(jì)算的表達(dá)式>:
    <執(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某些情況下就不會(huì)倍執(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è)編寫了一個(gè)while理論上永遠(yuǎn)不會(huì)結(jié)束的循環(huán)。

while True:
    print('真·三國無雙')

真·三國無雙
真·三國無雙
  .
  .
  .
真·三國無雙

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyboardInterrupt

這樣的循環(huán)只能手動(dòng)停止。

單實(shí)際上也有它的應(yīng)用,例如循環(huán)刪除列表中的元素。

list_ = ['真·三國無雙', '真·三國無雙', '真·三國無雙']
while True:
    if not list_ :
        break
    print(list_ .pop(-1))

輸出:

真&middot;三國無雙
真&middot;三國無雙
真&middot;三國無雙

可以 break 在循環(huán)中指定多個(gè)語句。可以通過 break 從幾個(gè)不同的位置結(jié)束循環(huán),而不必在循環(huán)頭中指定所有終止條件。

while True:
    if <布爾計(jì)算的表達(dá)式1>:  # 條件判斷1
        break
    
    if <布爾計(jì)算的表達(dá)式2>:  # 條件判斷2
        break
    
    if <布爾計(jì)算的表達(dá)式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)可以包含在另一個(gè)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 <布爾計(jì)算的表達(dá)式1>:
    statement
    statement

    while <布爾計(jì)算的表達(dá)式2>:
        statement
        statement
        break  # 適用于 while <布爾計(jì)算的表達(dá)式2>: 循環(huán)

    break  # 適用于 while <布爾計(jì)算的表達(dá)式1>: 循環(huán)

while循環(huán)可以嵌套在 if、elif、else 語句中。

if <布爾計(jì)算的表達(dá)式1>:
    <python執(zhí)行語句1>
    while <布爾計(jì)算的表達(dá)式2>:
        <python執(zhí)行語句2>
        <python執(zhí)行語句3>
else:
    while <布爾計(jì)算的表達(dá)式3>:
        <python執(zhí)行語句4>
        <python執(zhí)行語句5>
    <python執(zhí)行語句6>

while <布爾計(jì)算的表達(dá)式1>:
    if <布爾計(jì)算的表達(dá)式2>:
        <python執(zhí)行語句1>
    elif <布爾計(jì)算的表達(dá)式3>:
        <python執(zhí)行語句2>
    else:
        <python執(zhí)行語句3>
    if <布爾計(jì)算的表達(dá)式4>:
        <python執(zhí)行語句4>

單行 while 循環(huán)

與 if 語句一樣,while 可以在一行中指定循環(huán)。也可以用 ;組成多個(gè)循環(huán)體語句。

n = 5
while n > 0: n -= 1; print(n)

輸出:

4
3
2
1
0

兩個(gè)復(fù)合語句組合成簡寫方式是不可以的。

if True: print('data')
data

while n > 0: n -= 1; if True: print('data')
SyntaxError: invalid syntax

感謝各位的閱讀,以上就是“Python中while無限迭代循環(huán)怎么實(shí)現(xiàn)”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)Python中while無限迭代循環(huán)怎么實(shí)現(xiàn)這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI