while expression: statement(s)
在這裡,語句(statement(s))可以是單個語句或均勻縮排語句塊。條件(condition)可以是表示式,以及任何非零值時為真。當條件為真時迴圈疊代。
在Python中,所有程式設計結構後相同數量的字元空格的縮排語句被認為是一個單一程式碼塊的一部分。Python使用縮排作為分組語句的方法。
在這裡,while迴圈的關鍵點是迴圈可能永遠不會執行。當條件測試,結果是false,將跳過迴圈體並執行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)的當前值和然後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
如果else語句在一個for迴圈中使用,當迴圈已經完成(用盡時)疊代列表執行else語句。
如果else語句用在while迴圈中,當條件變為 false,則執行 else 語句。
下面的例子說明了,只要它小於5,while語句列印這些數值,否則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 同行整個標題。
#!/usr/bin/python3 flag = 1 while (flag): print ('Given flag is really true!') print ("Good bye!")