while 迴圈

Python 入門(開發者向)

Jasmin Ludolf

Senior Data Science Content Developer

if 敘述

if 敘述

if 敘述流程:開始 > 條件成立 > 執行動作 > 結束

Python 入門(開發者向)

if 與 while 的比較

if 敘述

if 敘述流程:開始 > 條件成立 > 執行動作 > 結束

while 迴圈

while 迴圈流程:開始 > 條件成立 > 執行動作 > 迴圈 > 重複直到條件不再成立

Python 入門(開發者向)

while 迴圈

while condition:
    action
  • 任何持續性的任務
    • 按住按鈕時加速 while a button is pressed

遊戲主機與賽車遊戲

1 https://unsplash.com/@joaoscferrao
Python 入門(開發者向)

while 迴圈

ingredients_to_add = 5
items_added = 0
# 只要還有項目就持續加入
while items_added < ingredients_to_add:

items_added += 1 remaining = ingredients_to_add - items_added print(remaining, "ingredients left to add")
Python 入門(開發者向)

輸出

4 ingredients left to add
3 ingredients left to add
2 ingredients left to add
1 ingredients left to add
0 ingredients left to add
  • items_added 等於 ingredients_to_add 時離開迴圈
Python 入門(開發者向)

小心事項

  • while 在條件成立時會持續執行
ingredients_to_add = 5
items_added = 0

while items_added < ingredients_to_add:
    remaining = ingredients_to_add - items_added
    print(remaining, "ingredients left")
Python 入門(開發者向)

一直跑不停

ingredients_to_add = 5
items_added = 0

# 無限迴圈 - 永不結束!
while items_added < ingredients_to_add:
    remaining = ingredients_to_add - items_added
    print(remaining, "ingredients left")
    # 忘了遞增 items_added!
  • 條件永遠不會變成 False
  • 迴圈無限執行,程式當住
  • 常見開發者錯誤
Python 入門(開發者向)

中斷迴圈

while items_added < ingredients_to_add:
    remaining = ingredients_to_add - items_added
    print(remaining, "ingredients left")

# 終止迴圈 break
  • break 也可用在 for 迴圈

  • 若程式已在執行:Control + C / Command + C

Python 入門(開發者向)

while 迴圈中的條件判斷

ingredients_to_add = 5
items_added = 0


while items_added < ingredients_to_add: items_added += 1 remaining = ingredients_to_add - items_added
if remaining > 3: print("Several ingredients remaining")
elif remaining >= 1: print("Almost done!")
else: print("Shopping list complete!")
Python 入門(開發者向)

條件判斷輸出

Several ingredients remaining
Several ingredients remaining
Almost done!
Almost done!
Shopping list complete!
Python 入門(開發者向)

一起來練習吧!

Python 入門(開發者向)

Preparing Video For Download...