在 Python 編程中,while 迴圈 是一個非常重要且常用的控制結構,用於根據特定條件反覆執行代碼塊。
對於剛開始學習 Python 的新手來說,理解並掌握 while 迴圈的用法,將大大提升你的編程能力和靈活性。
本文將詳細介紹 Python 中的 while 迴圈,包括其基本語法、使用技巧、實際應用和注意事項。
同時提供豐富的示例,幫助你在實際開發中靈活運用。
什麼是 while 迴圈?
while 迴圈是一種控制流程語句,允許程式在條件為真(True)時,不斷執行指定的代碼塊,直到條件為假(False)為止。
這使得我們可以根據程式的狀態,動態地控制迴圈的執行次數。
while 迴圈的基本語法
while 條件:
執行語句條件:一個布林表達式,結果為True或False。執行語句:當條件為True時,將重複執行的代碼塊,需要正確縮排。
示例:
count = 0
while count < 5:
print(f"計數:{count}")
count += 1輸出:
計數:0
計數:1
計數:2
計數:3
計數:4解釋:
- 變數
count初始值為0。 - 當
count < 5為True時,執行迴圈內的代碼。 - 每次執行後,
count增加1。 - 當
count增加到5,count < 5為False,迴圈結束。
while 迴圈中的 break 和 continue
break 語句
break 用於立即終止迴圈,不論條件是否為真。
示例:
count = 0
while True:
print(f"計數:{count}")
count += 1
if count >= 5:
break輸出:
計數:0
計數:1
計數:2
計數:3
計數:4continue 語句
continue 用於跳過本次迭代,直接開始下一次迭代。
示例:
count = 0
while count < 5:
count += 1
if count == 3:
continue
print(f"計數:{count}")輸出:
計數:1
計數:2
計數:4
計數:5解釋:
- 當
count == 3時,continue跳過當次迭代,因此不會打印計數:3。
while 迴圈中的 else 子句
while 迴圈可以帶有一個 else 子句,當迴圈正常結束(即條件變為 False)時,else 子句中的代碼會被執行。
如果迴圈被 break 打斷,else 子句將不會執行。
示例:
count = 0
while count < 5:
print(f"計數:{count}")
count += 1
else:
print("迴圈正常結束。")輸出:
計數:0
計數:1
計數:2
計數:3
計數:4
迴圈正常結束。使用 break 的情況:
count = 0
while count < 5:
print(f"計數:{count}")
if count == 3:
break
count += 1
else:
print("迴圈正常結束。")輸出:
計數:0
計數:1
計數:2
計數:3解釋:
- 迴圈在
count == 3時被break終止,else子句未被執行。
實際應用示例
猜數字遊戲
import random
secret_number = random.randint(1, 100)
guess = None
print("猜數字遊戲!我選了一個 1 到 100 之間的數字。")
while guess != secret_number:
guess = int(input("請輸入您的猜測:"))
if guess < secret_number:
print("太小了!")
elif guess > secret_number:
print("太大了!")
else:
print("恭喜你,猜對了!")計算輸入的正整數的總和
total = 0
while True:
user_input = input("請輸入一個正整數(輸入 '0' 結束):")
number = int(user_input)
if number == 0:
break
elif number > 0:
total += number
else:
print("請輸入正整數。")
print(f"總和為:{total}")while 迴圈的注意事項
防止無限迴圈
- 問題:如果迴圈條件一直為
True,且沒有適當的結束機制,會導致無限迴圈,程式無法結束。 - 解決方案:確保在迴圈內部,有機制使條件最終變為
False,或者使用break語句終止迴圈。
示例:
# 無限迴圈的例子(請勿執行)
while True:
print("這是無限迴圈")正確使用條件
- 建議:在條件判斷時,注意變數的更新,避免因為疏忽導致條件永遠為真或永遠為假。
注意縮排
- 重要性:Python 使用縮排來標識代碼塊,確保迴圈內的代碼正確縮排。
while 迴圈與 for 迴圈的比較
for迴圈:通常用於已知迭代次數,或者需要遍歷序列的情況。while迴圈:適用於需要根據條件重複執行,迭代次數未知的情況。
示例:
- 使用
for迴圈:
for i in range(5):
print(i)- 使用
while迴圈:
i = 0
while i < 5:
print(i)
i += 1常見錯誤與調試
忘記更新條件變數
- 問題:迴圈條件變數未更新,導致無限迴圈。
- 解決方案:確保在迴圈內正確更新條件變數。
錯誤示例:
count = 0
while count < 5:
print(count)
# 忘記更新 count條件寫錯
- 問題:條件判斷錯誤,導致迴圈無法正常執行。
- 解決方案:仔細檢查條件表達式,確保符合預期。
錯誤示例:
count = 0
while count = 5: # 應該使用 '==' 或 '<'
print(count)
count += 1正確寫法:
while count == 5:
# 或者 while count < 5:總結
while迴圈 是 Python 中的重要控制結構,用於在條件為真時重複執行代碼塊。- 基本語法:
while 條件: 執行語句 - 關鍵點:
- 確保條件最終會變為
False,防止無限迴圈。 - 正確使用
break和continue語句控制迴圈流程。 - 注意縮排和條件判斷的正確性。
- 確保條件最終會變為
- 實際應用:用於需要根據動態條件進行迭代的場景,如用戶交互、等待事件等。