Python 中的 while 迴圈詳解:新手指南

更新日期: 2024 年 9 月 30 日

在 Python 編程中,while 迴圈 是一個非常重要且常用的控制結構,用於根據特定條件反覆執行代碼塊。

對於剛開始學習 Python 的新手來說,理解並掌握 while 迴圈的用法,將大大提升你的編程能力和靈活性。

本文將詳細介紹 Python 中的 while 迴圈,包括其基本語法、使用技巧、實際應用和注意事項。

同時提供豐富的示例,幫助你在實際開發中靈活運用。


什麼是 while 迴圈?

while 迴圈是一種控制流程語句,允許程式在條件為真(True)時,不斷執行指定的代碼塊,直到條件為假(False)為止。

這使得我們可以根據程式的狀態,動態地控制迴圈的執行次數。

while 迴圈的基本語法

while 條件:
    執行語句
  • 條件:一個布林表達式,結果為 TrueFalse
  • 執行語句:當條件為 True 時,將重複執行的代碼塊,需要正確縮排。

示例:

count = 0
while count < 5:
    print(f"計數:{count}")
    count += 1

輸出:

計數:0
計數:1
計數:2
計數:3
計數:4

解釋:

  • 變數 count 初始值為 0
  • count < 5True 時,執行迴圈內的代碼。
  • 每次執行後,count 增加 1
  • count 增加到 5count < 5False,迴圈結束。

while 迴圈中的 breakcontinue

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,防止無限迴圈。
    • 正確使用 breakcontinue 語句控制迴圈流程。
    • 注意縮排和條件判斷的正確性。
  • 實際應用:用於需要根據動態條件進行迭代的場景,如用戶交互、等待事件等。

延伸閱讀

Similar Posts

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *