關於 'while' 迴圈
當我們在撰寫程式碼時,常會遇到一項挑戰,就是讓程式碼執行不定次數的工作。 在本單元中,您希望允許使用者輸入一組行星名稱的清單。 不幸的是,您不知道使用者輸入多少名稱。 為了支援執行不定次數的迴圈,您可以使用 while
迴圈。
「當」特定條件為 true 時,while
迴圈會執行作業。 您可以使用 while
迴圈來:
- 檢查檔案中的另一行。
- 檢查是否已設定旗標。
- 檢查使用者是否已完成輸入值。
- 檢查是否有其他專案已變更,以指出程式碼可以停止執行作業。
重要
當我們建立 while
迴圈時,要記住的最重要一點是確保條件會變更。 如果條件總是為 true,則 Python 會持續執行程式碼,直到程式損毀為止。
while
迴圈的語法相似於 if
陳述式。 我們必須提供條件,以及當條件為 true 時所要執行的程式碼。
while
迴圈有三大組件:
關鍵字
while
,後面接著空格。您測試的條件。 若條件為 true,則
while
迴圈內的程式碼會執行。您想要針對每個反覆項目執行的程式碼,以巢狀空白字元縮排。 例如:
while <condition>: # code here
讓我們看看如何建立程式碼來提醒使用者輸入值,接著允許使用者在完成輸入值後輸入「完成」。 在本範例中,使用者輸入是於 while
迴圈頂端測試的條件。
user_input = ''
while user_input.lower() != 'done':
user_input = input('Enter a new value, or done when done')
請注意,我們會使用 input
來提示使用者。 每次使用者輸入新值時,就會變更條件,這表示 while
迴圈會在他們輸入「完成」後結束。
注意
在本範例中,我們使用了 lower
將輸入轉換為小寫,以允許進行區分大小寫得比較。
您可以使用新輸入的字串,就像使用 input
擷取的任何其他字串一樣。 如果您想將其新增至清單,可以使用如下範例的程式碼:
# Create the variable for user input
user_input = ''
# Create the list to store the values
inputs = []
# The while loop
while user_input.lower() != 'done':
# Check if there's a value in user_input
if user_input:
# Store the value in the list
inputs.append(user_input)
# Prompt for a new value
user_input = input('Enter a new value, or done when done')
請注意 while
迴圈中的 if
陳述式。 這個陳述式會測試 user_input
中的字串值。 while
迴圈初次執行時不會有任何值,所以沒有任何項目可以儲存到 inputs
中。 初次執行結束後,user_input
一律會保留使用者輸入的值。 因為 while
會進行測試以確保值不會等於 done
(使用者會輸入以結束應用程式的字組),所以我們能知道目前的值就是能新增到清單中的值。
注意
您可能熟悉支援 do
迴圈的其他程式設計語言,能讓您在迴圈底部執行測試。 Python 不提供 do
迴圈。