App下載

Python 怎么使用循環(huán)?——循環(huán)示例

一米五的小可愛(ài) 2021-09-01 09:58:17 瀏覽數(shù) (6551)
反饋

Python 中的循環(huán)

Python 內(nèi)置了兩種類(lèi)型的循環(huán):

  • ?for ?循環(huán)
  • ?while ?循環(huán)

讓我們關(guān)注如何while在 Python 中創(chuàng)建循環(huán)及其工作原理。

Python 中的 while 循環(huán)是什么?

Python 中while循環(huán)的一般語(yǔ)法如下所示:

while condition:
    execute this code in the loop's body

while 循環(huán)將在條件為 ?True ?時(shí)運(yùn)行一段代碼。它將繼續(xù)執(zhí)行所需的代碼語(yǔ)句集,直到該條件不再為 ?True?。

while 循環(huán)總是在運(yùn)行前首先檢查條件。

如果條件評(píng)估為?True?,則循環(huán)將運(yùn)行循環(huán)體內(nèi)的代碼。

例如,只要?number<10?,這個(gè)循環(huán)就會(huì)運(yùn)行:

number = 0
while number < 10:
    print(f"Number is {number}!")
    number = number + 1

輸出:

Number is 0!
Number is 1!
Number is 2!
Number is 3!
Number is 4!
Number is 5!
Number is 6!
Number is 7!
Number is 8!
Number is 9!

此處,變量?number?初始值設(shè)置為0。

在運(yùn)行循環(huán)代碼之前,Python 會(huì)檢查條件 ( ?number < 10?)。

它的計(jì)算結(jié)果為 ?True?,因此打印語(yǔ)句被執(zhí)行并輸出“Number is 0!”到控制臺(tái)。

然后number增加1。條件被重新評(píng)估,它再次為真,所以整個(gè)過(guò)程重復(fù),直到number等于9。

在這之前“Number is 9!”被打印同時(shí)number遞增,但現(xiàn)在?number=10?,所以不再滿(mǎn)足條件,因此循環(huán)終止。

while如果不滿(mǎn)足條件,循環(huán)可能永遠(yuǎn)不會(huì)運(yùn)行,

例如在此示例中:

number = 50
while number < 10 :
    print(f"Number is {number}!")

由于條件始終為 False,因此不會(huì)執(zhí)行循環(huán)體中的指令。

不要?jiǎng)?chuàng)建無(wú)限循環(huán)

正如您從上面的示例中看到的,while循環(huán)通常伴隨著一個(gè)變量,該變量的值在整個(gè)循環(huán)期間都會(huì)發(fā)生變化。

它最終決定了循環(huán)何時(shí)結(jié)束。

如果不添加此行,則會(huì)造成無(wú)限循環(huán)。

number不會(huì)增加和更新。它將始終設(shè)置并保持在0,因此條件number < 10將永遠(yuǎn)為真。

這意味著循環(huán)將永遠(yuǎn)循環(huán)下去。

# don't run this

number = 0
while number < 10:
    print(f"Number is {number}!")

輸出:

Number is 0!
Number is 0!
Number is 0!
Number is 0!
Number is 0!
Number is 0!
Number is 0!
...

它無(wú)限運(yùn)行。

這與執(zhí)行此操作相同:

#don't run this
while True:
    print("I am always true")

如果你發(fā)現(xiàn)自己處于這樣的境地怎么辦?

按Ctrl+C退出并結(jié)束循環(huán)。

什么是 do while 循環(huán)?

do while其他編程語(yǔ)言中循環(huán)的一般語(yǔ)法如下所示:

do {
  loop block statement to be executed;
}
while(condition);

例如,C 中的 do while 循環(huán)如下所示:

#include <stdio.h>
 
int main(void)
 {
   int i = 10;
   do {
      printf("the value of i: %i\n", i);
      i++;
      }
  while( i < 20 );
 }

do while 循環(huán)的獨(dú)特之處在于循環(huán)塊中的代碼將至少執(zhí)行一次。

語(yǔ)句中的代碼運(yùn)行一次,然后在代碼執(zhí)行后才檢查條件。

所以代碼首先運(yùn)行一次,然后檢查條件。

如果檢查的條件評(píng)估為真,則循環(huán)繼續(xù)。

在某些情況下,您希望代碼至少運(yùn)行一次,這就是 do while 循環(huán)派上用場(chǎng)的地方。

例如,當(dāng)您編寫(xiě)一個(gè)接收用戶(hù)輸入的程序時(shí),您可能只要求一個(gè)正數(shù)。

代碼將至少運(yùn)行一次。如果用戶(hù)提交的數(shù)字為負(fù)數(shù),則循環(huán)將繼續(xù)運(yùn)行。如果是正數(shù),它將停止。

Python 沒(méi)有do while像其他語(yǔ)言那樣顯式創(chuàng)建循環(huán)的內(nèi)置功能。

但是可以使用 while在 Python 中模擬do-while循環(huán)。

如何在 Python 中模擬 do-while 循環(huán)

要do-while在 Python 中創(chuàng)建循環(huán),您需要稍微修改while循環(huán)以獲得與其他語(yǔ)言中的do-while循環(huán)類(lèi)似的行為。

do-while循環(huán)將至少運(yùn)行一次。如果滿(mǎn)足條件,則它將再次運(yùn)行。

而while循環(huán),在另一方面,沒(méi)有至少運(yùn)行一次,實(shí)際上可能永遠(yuǎn)不會(huì)運(yùn)行。它僅在滿(mǎn)足條件時(shí)運(yùn)行。

因此,假設(shè)我們有一個(gè)示例,我們希望一行代碼至少運(yùn)行一次。

secret_word = "python"
counter = 0

while True:
    word = input("Enter the secret word: ").lower()
    counter = counter + 1
    if word == secret_word:
        break
    if word != secret_word and counter > 7: 
        break

該代碼將至少運(yùn)行一次,要求用戶(hù)輸入。

它始終保證至少運(yùn)行一次,使用True,否則會(huì)創(chuàng)建無(wú)限循環(huán)。

如果用戶(hù)輸入正確的口令,則循環(huán)終止。

如果用戶(hù)輸入錯(cuò)誤的密碼超過(guò) 7 次,則循環(huán)將完全退出。

該break語(yǔ)句允許您控制while循環(huán)的流程,而不是以無(wú)限循環(huán)結(jié)束。

break 將立即終止當(dāng)前循環(huán)并退出它。

這就是你如何do while在 Python 中創(chuàng)建與循環(huán)類(lèi)似的效果。

循環(huán)總是至少執(zhí)行一次。如果不滿(mǎn)足條件,它將繼續(xù)循環(huán),然后在滿(mǎn)足條件時(shí)終止。



1 人點(diǎn)贊