Python for-loop、while-loop 迴圈語句 – 基礎篇
前言
for-loop 迴圈提供了一種遍歷集合(如列表或元組)或按指定範圍執行代碼的機制,這種類型的迴圈在數據分析和處理中是很有用的。另一方面,while-loop 則根據特定條件的真偽進行迭代,為需要持續監控或檢查的情況提供解決方式。
此外,還將討論 break 和 continue 這兩個流程控制語句,這些語句對於管理迴圈的執行流程至關重要。break 語句允許程序在某些情況下提前終止迴圈,而 continue 則用於跳過迴圈的當前迭代。通過實際範例,本篇透過範程序例展示如何運用這些迴圈來優化程序上的效率和可讀性。
本篇為程序猿提供一個關於 Python 迴圈的全面基礎教學,無論是初學者還是有經驗的程序猿,都可以通過本篇文章深入了解這些基本但重要的寫程序的基礎。
Outline
- for-loop 迴圈
- 解釋 for-loop 的基本結構。
- 程式範例:遍歷列表(list)。
- 程式範例:使用 range 函數。
- while-loop 迴圈
- 解釋 while-loop 的基本結構。
- 程式範例:基於條件的重複執行。
- 程式範例:創建一個簡單的計數器。
- break 和 continue
- 解釋 break 和 continue 的作用。
- 程式範例:在迴圈中使用 break 來提前退出。
- 程式範例:使用 continue 跳過當前迭代。
- 綜合範例
- 提供一個綜合應用範例,結合 for-loop、while-loop 以及 break 和 continue 的使用。
- 總結
- 回顧文章內容,強調迴圈在 Python 程序中的重要性。
for-loop 迴圈 – Python 迴圈語句
基本結構
在 Python 中,for-loop 迴圈是用來遍歷序列(如列表、元組、字典、集合或字符串)中的每個元素的常用方法。它的基本結構是:
1 2 |
for item in sequence: # 執行的代碼塊 |
這裡,item 代表序列中的當前元素,而 sequence 是要遍歷的序列。for-loop 會從序列的第一個元素開始,依次處理每個元素,直到序列的結尾。
程式範例:遍歷列表(list)
基本列表遍歷
遍歷一個包含數字的列表:
1 2 3 |
numbers = [1, 2, 3, 4, 5] for num in numbers: print(num) |
這段代碼將輸出列表中的每個數字。
遍歷並進行操作
對列表中的每個元素進行操作,比如計算平方:
1 2 3 4 |
numbers = [1, 2, 3, 4, 5] for num in numbers: square = num ** 2 print(f"The square of {num} is {square}") |
這會輸出每個數字的平方。
程式範例:使用 range 函數
基本 range 使用range() 函數生成一個數字序列,非常適合與 for-loop 一起使用。例如,從 0 到 4:
1 2 |
for i in range(5): print(i) |
這將打印 0 到 4 的數字。
帶有起始和結束範圍的 range
指定起始和結束範圍:
1 2 |
for i in range(1, 6): # 從 1 開始,小於 6 結束 print(i) |
這會輸出 1 到 5 的數字。
使用步長的 range
可以指定步長(每次迭代增加的值):
1 2 |
for i in range(0, 10, 2): # 從 0 開始到小於 10,步長為 2 print(i) |
這將輸出 0, 2, 4, 6, 8。
以上這些範例展示了 for-loop 迴圈在 Python 中的基本使用和一些常見應用。
while-loop 迴圈 – Python 迴圈語句
基本結構
首先講講基本結構,while-loop 是 Python 中的另一種迴圈結構,它會在指定條件為真時持續執行代碼塊。其基本結構如下:
1 2 |
while condition: # 執行的代碼塊 |
在這裡,condition 是一個布林表達式,迴圈會不斷執行,直到該條件不再為真。這使得 while-loop 非常適合於那些我們事先不知道需要執行多少次迭代的情況。
程式範例:基於條件的重複執行
條件迴圈
下面是一個簡單的例子,只要數字小於 5,迴圈就會持續執行:
1 2 3 4 |
count = 0 while count < 5: print(count) count += 1 |
這將會打印出 0 到 4 的數字。
無限迴圈與 break
使用 while-loop 時,有可能創建一個無限迴圈。我們可以用 break 語句來防止這種情況:
1 2 3 4 5 6 |
count = 0 while True: print(count) count += 1 if count >= 5: break |
這將同樣打印出 0 到 4,但這次是使用了無限迴圈和 break 語句。
程式範例:創建一個簡單的計數器
簡單計數器
下面的代碼展示了如何創建一個基本的計數器,它會計數到一個特定的數值然後停止:
1 2 3 4 5 |
limit = 10 count = 0 while count < limit: print(f"Count: {count}") count += 1 |
這將會打印出“Count: 0”到“Count: 9”。
使用使用者輸入的計數器
這個範例將結合使用者輸入和 while-loop,來創建一個動態計數器:
1 2 3 4 5 |
limit = int(input("Enter the count limit: ")) count = 0 while count < limit: print(f"Count: {count}") count += 1 |
這段代碼允許使用者指定計數器的上限,然後從 0 開始計數到該上限。
以上這些範例說明和展示了 while-loop 迴圈在 Python 中的基本用法和一些常見應用。
break 和 continue – Python 迴圈語句
在 Python 的迴圈中,break 和 continue 是兩個用於控制迴圈語句。
- break: break 語句用於立即終止迴圈的執行,無論迴圈條件是否還為真。一旦執行了 break,控制流將跳出迴圈體,繼續執行迴圈之後的代碼。
- continue: 與 break 不同,continue 語句用於跳過迴圈的當前迭代,直接進入下一次迭代。如果迴圈條件仍然為真,迴圈將繼續執行。
程式範例:在迴圈中使用 break
基本範例:
使用 break 提前退出 for-loop:
1 2 3 4 |
for num in range(1, 10): if num == 5: break print(num) |
這段代碼將打印 1 到 4,一旦數字達到 5,break 使迴圈提前終止。
尋找特定元素:
在列表中尋找特定元素並在找到時停止迴圈:
1 2 3 4 5 |
items = ["apple", "banana", "cherry", "date"] for item in items: if item == "cherry": print("Cherry found!") break |
一旦找到 “cherry”,迴圈將停止。
程式範例:使用 continue 跳過當前迭代
基本範例:
在 for-loop 中跳過某些特定的迭代:
1 2 3 4 |
for num in range(1, 10): if num % 2 == 0: # 如果數字是偶數 continue print(num) |
這段代碼只會打印 1 到 9 之間的奇數。
條件篩選:
篩選列表中符合特定條件的元素:
1 2 3 4 5 |
items = ["apple", "banana", "cherry", "date"] for item in items: if item.startswith('b'): continue print(item) |
這將打印除了以 ‘b’ 開頭的所有水果。
以上這些範例清楚說明了 break 和 continue 在 Python 迴圈中的應用和做法,當中提供了額外的控制能力,使得我們能夠更精確地控制代碼的執行流程。
綜合範例 – Python 迴圈語句
我們將創建一個小程序來模擬一個簡單的數字猜謎遊戲。在這個遊戲中,程序將隨機選擇一個範圍內的數字,使用者則需要猜出這個數字。我們將使用 for-loop 來限制猜測次數,使用 while-loop 來確保使用者輸入有效,並運用 break 和 continue 控制迴圈流程。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
import random # 隨機選擇一個 1 到 10 之間的數字 secret_number = random.randint(1, 10) attempts = 3 print("歡迎來到數字猜謎遊戲!") print(f"你有 {attempts} 次機會猜出 1 到 10 之間的數字。") # 使用 for-loop 來限制猜測次數 for attempt in range(1, attempts + 1): while True: try: guess = int(input(f"猜測 {attempt}:")) if 1 <= guess <= 10: break # 如果輸入有效,跳出 while-loop else: print("請輸入 1 到 10 之間的數字。") except ValueError: print("無效的輸入,請輸入一個數字。") if guess == secret_number: print(f"恭喜你!答案是 {secret_number}。") break elif guess < secret_number: print("太低了,再試一次!") continue else: print("太高了,再試一次!") if attempt == attempts: print(f"哦不!機會用完了。答案是 {secret_number}。") |
功能解釋
- 初始化: 隨機選擇一個數字作為遊戲的答案,並設定最大猜測次數。
- for-loop: 控制使用者猜測的次數。
- while-loop: 確保使用者輸入的是有效的數字,並在無效輸入時要求重新輸入。
- break: 當使用者猜中數字或輸入有效時,用於跳出 while-loop 或 for-loop。
- continue: 用於在未猜中數字時快速進行下一次迴圈迭代。
透過以上這遊戲範例,我們展示了如何在實際應用中結合不同類型的迴圈和控制語句。各位程序猿能夠嘗試建立個小遊戲,當作學到目前為止的驗收,比較有成就感。
總結
在本篇文章中,探討了 Python 中兩種基本迴圈結構:for-loop 和 while-loop。它們在數據處理、自動化腳本、遊戲開發等多個領域中都發揮著重要作用。
- for-loop: 我們通過範例學習了如何使用 for-loop 來遍歷列表、字符串和其他序列類型,以及如何結合 range() 函數進行計數控制。這種迴圈特別適用於已知迭代次數的情況。
- while-loop: 我們探討了 while-loop 的使用,這是一種在未知迭代次數時非常有用的迴圈,例如在等待用戶輸入或某些條件成立時。
- break 和 continue: 這兩個控制語句增加了迴圈的靈活性,允許我們根據特定條件提前退出迴圈或跳過某次迭代。
- 綜合範例: 通過一個猜數字遊戲的範例,我們展示了如何在實際情況中綜合應用這些概念,這不僅強化了對迴圈概念的理解,也展示了 Python 在解決實際問題時的應用能力。
迴圈的應用方式使其成為 Python 程式設計的核心部分,當中了解和掌握這些概念是每位 Python 程式猿成長之路上的重要一步。無論是處理大量數據、開發複雜的應用程序還是簡單的自動化任務,迴圈多多少少是都會用到的語句。