只要給定條件為真(True),Python程式設計語言中的while
迴圈語句將重複執行目標語句。
Python程式設計語言中的while
迴圈的語法是 -
while expression:
statement(s)
在這裡,語句(statement(s)
)可以是一個單一的語句或一組具有統一縮排的語句。條件(expression
)可以是任何表示式,True
是任何非零值。迴圈在條件為真時執行。
當條件(expression
)變為false
時,程式控制傳遞到迴圈之後的程式碼行。
在Python中,在程式設計結構之後由相同數量的字元空格縮排的所有語句都被認為是單個程式碼塊的一部分。 Python使用縮排作為對語句進行分組的方法。
流程圖
在這裡,while
迴圈的一個關鍵點在於迴圈可能不會執行。 當條件被測試並且結果為假時,迴圈體將被跳過,並且while
迴圈塊之後的第一個語句將被執行。
範例
#!/usr/bin/python3
count = 0
while (count < 9):
print ('The count is:', count)
count = count + 1
print ("Good bye!")
當執行上述程式碼時,會產生以下結果 -
The count is: 0
The count is: 1
The count is: 2
The count is: 3
The count is: 4
The count is: 5
The count is: 6
The count is: 7
The count is: 8
Good bye!
在上面輸出結果中,列印和增量語句組成的塊將重複執行,直到count
大於9
時退出。在每次疊代中,列印顯示count
的當前值,然後增加1
。
如果條件從不變為FALSE
,則迴圈變為無限迴圈。 使用while
迴圈時必須謹慎,因為在無法解析為FALSE
值的這種情況時,將導致永遠不會結束的迴圈。這樣的迴圈被稱為無限迴圈。
無限迴圈可能在用戶端/伺服器程式設計中有用,伺服器需要連續執行,以便用戶端程式可以在需要時與其進行通訊。
範例
#!/usr/bin/python3
var = 1
while var == 1 : # This constructs an infinite loop
num = int(input("Enter a number :"))
print ("You entered: ", num)
print ("Good bye!")
當執行上述程式碼時,會產生以下結果 -
Enter a number :20
You entered: 20
Enter a number :29
You entered: 29
Enter a number :3
You entered: 3
Enter a number :11
You entered: 11
Enter a number :22
You entered: 22
Enter a number :Traceback (most recent call last):
File "examples\test.py", line 5, in
num = int(input("Enter a number :"))
KeyboardInterrupt
上面的例子進入一個無限迴圈,在執行後需要使用CTRL + C來退出程式。
Python支援與迴圈語句相關聯的else
語句。
else
語句與for
迴圈一起使用,則在迴圈遍歷列表時回圈執行else
語句。else
語句與while
迴圈一起使用,則在條件變為false
時執行else
語句。以下範例說明了else
語句與while
語句的組合,該語句在變數 count
小於5
時印數位,當count
大於5
時執行else
語句。
#!/usr/bin/python3
count = 0
while count < 5:
print (count, " is less than 5")
count = count + 1
else:
print (count, " is not less than 5")
當執行上述程式碼時,會產生以下結果 -
0 is less than 5
1 is less than 5
2 is less than 5
3 is less than 5
4 is less than 5
5 is not less than 5
類似於if
語句的語法,如果while
子句只包含一個語句,那麼它可能被放在與while
頭相同的行上。
範例
以下是一行while
子句的語法和範例 -
#!/usr/bin/python3
flag = 1
while (flag): print ('Given flag is really true!')
print ("Good bye!")
上述範例進入無限迴圈,需要按CTRL + C鍵退出。