簡體   English   中英

while循環並將值解釋為True或False

[英]while loop and interpreting values as True or False

以下程序來自python書籍。 在此代碼中,先將count設置為0,然后再使用while True 在這本書中,我讀到零和空字符串被評估為False,而所有其他值被評估為True。 如果是這樣,那么程序如何執行while循環? 計數設置為0時,計數不會被評估為False嗎?

有人可以解釋一下嗎?

# Finicky Counter
# Demonstrates the break and continue statements

count = 0  
while True:         # while count is True
    count += 1

    # end loop if count greater than 10
    if count > 10:
       break
    # skip 5
    if count == 5:
        continue
    print(count)

input("\n\nPress the enter key to exit.")

如果您評估

if count: # and count is zero
       break

然后確定-循環將立即中斷。 但是您正在評估此表達式:

if count > 10: # 0 > 10

這是False ,所以您不會在第一次迭代時中斷。

如果您將while True:更改為while count: while True: while count:您的假設確實是正確的

在代碼部分中, while True ,條件將始終為true。 現在讓我們進入while循環。

count > 10時,對於count = 0,它為false,因此,當count <10時,它不會脫離while循環。

如果是while count:是,它將在第一次迭代中退出循環,因為while count:等於while count != 0

對於條件count == 5它將繼續進行下一次迭代,並且不會在循環內打印。

您沒有while count:while count: while True:while True:由於True始終為True ,除非您的內部沒有告訴您,否則循環將永遠運行。 那可能是說break的一行,也可能是引發的異常。 如果count大於10則循環將中斷。 count從零開始,但是在第一次迭代時, count += 1發生, count現在為1。 由於count不大於十,因此不會中斷。 由於count不等於5 ,因此也不繼續。 它所做的只是打印1 在下一次迭代中, count再次增加,並且if語句發生相同的情況。 直到最終, count等於4的迭代才結束。 由於True仍然為True ,因此迭代會再次發生。 count增加,現在等於5。 if count > 10:語句為False ,但if count == 5:True ,因此循環僅跳過print調用並返回循環的開頭。 它得到的第一件事是count += 1 ,因此count現在等於6。 接下來的幾次迭代非常類似於在count為5之前發生的事情。 一旦發生count為9的迭代,它將到達循環的起點並遞增count 現在count為十,循環中斷。

while循環是一個循環,它將運行部分代碼,直到條件為False。
而True稱為無限循環,因為True不是條件,因此不能更改。 因此循環將一直運行,直到找到break指令為止。

在這里,您有兩個與循環相關的特殊元素:

  • 繼續:直接進入下一個迭代
  • 休息:走出循環

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM