[英]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.