Python 中的 while 迴圈詳解:新手指南
更新日期: 2024 年 9 月 30 日
在 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
計數:4
continue
語句
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
語句控制迴圈流程。 - 注意縮排和條件判斷的正確性。
- 確保條件最終會變為
- 實際應用:用於需要根據動態條件進行迭代的場景,如用戶交互、等待事件等。