9.1 條件迴圈
迴圈 for 很適合用在明確知道需要執行多少次指令塊的情況。但這樣的情況並非總是發生。大約一半的情況下,需要在某些條件(規則)為真時,執行指令塊。
正因如此,Python 語言提供了 迴圈 while。它的語法比 for 迴圈還要簡單:
while 條件:
指令1
指令1
指令N
迴圈會執行,直到 條件 不再為真。
重要! 為避免迴圈無限執行,必須確保指令塊中有些改變會影響條件,以便條件可能變成假並結束迴圈。
範例:
| 範例 | 說明 |
|---|---|
|
迴圈會在螢幕上顯示數字 0 1 2 3 4 |
在 while 迴圈 中,無限執行兩個動作:
- 檢查條件。
- 執行指令塊。
如果條件為真,則執行指令塊。如果條件突然不再為真(即使指令塊從未執行過),迴圈就會結束。
另一個 while 迴圈 的例子,與使用者輸入未知數據量相結合:
| 範例 | 說明 |
|---|---|
|
迴圈會輸出所有用戶輸入的數據,直到輸入 exit。然後迴圈輸出它並結束。 |
9.2 break 操作符
在 Python 中,操作符 break 用於立即終止 while 迴圈 或 for 迴圈 的執行。這個操作符在需要不按條件正常結束迴圈時非常有用。
使用 break 增加了程序執行流程控制的靈活性,允許在執行期間響應動態變化的條件。
主要使用方法:
for num in range(10):
if num == 5:
break # 當 num 達到 5 時,終止迴圈
print(num)
在這個例子中,迴圈會輸出 0 到 4 的數字。當 num 為 5,break 會跳出迴圈。
在無限迴圈中的應用:
while True:
response = input("輸入 'exit' 來退出: ")
if response == 'exit':
break
這裡的 break 用於從無限迴圈中退出,當用戶輸入 'exit'。
break 操作符也常用於中斷嵌套迴圈的執行、處理需要立即終止行動的例外情況,以及在多執行緒或網絡應用程序中中斷過程。
例如,在尋找或排序的任務中,當找到所需元素後,繼續執行迴圈就沒有意義了:
elements = [1, 2, 3, -99, 5]
# 尋找第一個負數元素
for element in elements:
if element < 0:
print("找到一個負數元素:", element)
break
最佳實踐 是明智地使用 break,以免使程式邏輯過於複雜,不易理解。好的做法是對中斷迴圈的原因進行註解,尤其在上下文不明顯時。
使用 break 應該有充分理由和目的。比如,用於提升程式的可讀性和效率,而不是僅僅為了"打破"邏輯。有效地使用這個操作符能顯著提高程式的性能,尤其是在需要大量計算的算法中。
9.3 continue 操作符
continue 操作符 在 Python 中是用來控制迴圈執行流程的強大工具。它會跳過當前迴圈的其餘部分,直接進入下一次迴圈。這個操作符在 for 和 while 迴圈中使用頻繁,用於在不打斷整個迴圈的情況下跳過特定條件。
continue 操作符的使用基礎
以下是 continue 在簡單迴圈中的運作方式:
for i in range(10):
if i % 2 == 0:
continue
print(i)
在這個例子中,迴圈只會輸出 1 到 9 的奇數。每當 i 是偶數(能被 2 整除),continue 操作符就會啟動,跳過 print() 函數的調用,直接進入下一次迴圈。
continue 的應用在現實場景中
資料過濾:continue 可以在迴圈中執行更複雜的操作前,用於初步過濾資料。
data = ["apple", "banana", "", "cherry", "date"]
for fruit in data:
if not fruit:
continue # 跳過空字串
print(fruit.capitalize())
跳過特定條件:在需要根據複雜條件跳過某些元素的情況下,特別有用。
scores = [92, 85, 99, 78, 82, 100, 67, 88]
for score in scores:
if score < 80:
continue # 跳過低分
print("恭喜,您的分數是:", score)
continue 操作符在 Python 中提供了一種簡化代碼並使其更具可讀性的優雅方式,通過在迴圈中跳過不符合條件的元素。過度使用會使得理解迴圈處理哪些數據變得更困難,尤其是在具有多個條件的複雜迴圈中。保持合理的平衡。
GO TO FULL VERSION