Python循環基礎:for循環與while循環的區別及應用場景

一、爲什麼需要循環?

在編程中,我們經常需要重複執行某段代碼。比如:打印1到10的數字、處理列表中的每個元素、或者讓用戶持續輸入直到滿足條件。這時候,循環就派上用場了——它能讓我們用更少的代碼完成重複任務,避免重複寫代碼。

Python中有兩種最基礎的循環結構:for循環和while循環。它們各有特點,適用不同場景。

二、for循環:遍歷序列的“重複工具”

for循環主要用於遍歷可迭代對象(比如列表、字符串、數字序列等),每次從序列中取出一個元素,執行循環體內的代碼。

1. 基本語法
for 變量 in 可迭代對象:
    # 循環體(縮進的代碼塊)
    執行操作

可迭代對象是什麼?簡單說就是能“一個個取元素”的東西,比如列表([1,2,3])、字符串("hello")、range生成的數字序列等。

2. 常見用法舉例

例1:打印1到5的數字
如果用for循環,我們可以用range(1,6)生成1到5的序列(range(a,b)生成從a到b-1的整數):

for num in range(1, 6):  # num依次取1,2,3,4,5
    print(num)
# 輸出:1 2 3 4 5

例2:遍歷列表中的元素
如果要處理列表裏的每個元素(比如計算所有成績的平均分):

scores = [90, 85, 95, 80]
total = 0
for score in scores:  # score依次取90,85,95,80
    total += score  # 累加每個分數
average = total / len(scores)
print("平均分:", average)  # 輸出:平均分: 87.5

例3:遍歷字符串
字符串也是可迭代對象,for循環會逐個取出字符:

message = "Python"
for char in message:
    print(char)
# 輸出:P y t h o n(每個字符一行)

三、while循環:條件控制的“重複開關”

while循環的核心是判斷一個條件是否成立,如果條件爲True,就執行循環體;條件爲False,則停止循環。

1. 基本語法
while 條件:
    # 循環體(縮進的代碼塊)
    執行操作
    # (重要!通常需要修改條件中的變量,否則可能無限循環)

關鍵點while循環的次數由條件決定,所以必須確保條件最終會變爲False,否則會陷入“無限循環”。

2. 常見用法舉例

例1:計算1到10的和
while循環累加,初始值count=1,每次加1直到count=11

count = 1
total = 0
while count <= 10:  # 條件:count不超過10
    total += count  # 累加當前count
    count += 1      # 修改條件變量,否則條件永遠爲True
print("總和:", total)  # 輸出:總和:55

例2:用戶輸入驗證(直到正確輸入)
假設需要用戶輸入“密碼”,直到輸入正確(比如密碼是123456):

password = "123456"
user_input = ""
while user_input != password:  # 條件:輸入不等於密碼時繼續循環
    user_input = input("請輸入密碼:")
    if user_input != password:
        print("密碼錯誤,請重試!")
print("密碼正確,歡迎使用!")

四、for循環 vs while循環:核心區別

對比項 for循環 while循環
循環依據 遍歷可迭代對象(如列表、字符串、range) 判斷條件是否成立(由代碼手動控制)
循環次數 通常固定(由序列長度決定) 由條件控制(可能無限循環,除非條件修改)
適用場景 明確知道要遍歷的對象(如處理列表元素) 不確定循環次數,但有終止條件(如用戶交互)

五、應用場景總結

優先用for循環的情況
- 需要遍歷列表、字符串、元組等數據(比如處理“學生姓名列表”);
- 生成一個已知範圍的數字序列(用range,比如“打印1到100的偶數”);
- 處理可迭代對象(如字典的鍵、值或鍵值對)。

優先用while循環的情況
- 不確定循環次數,但知道終止條件(比如“直到用戶輸入正確”);
- 需要持續等待某個事件發生(如“監控文件是否更新”);
- 條件依賴於之前的操作結果(比如“累加直到總和超過100”)。

六、避坑指南:初學者常見錯誤

  1. while循環無限循環:忘記在循環體內修改條件變量!
    比如:count = 1; while count <= 10: print(count);(如果沒有count +=1,會一直打印1)。

  2. for循環遍歷不可變類型for只能遍歷可迭代對象,如果直接遍歷數字(如for num in 10)會報錯。

  3. range的參數錯誤range(a, b)必須滿足a < b,否則生成空序列(比如range(5,1)不會循環)。

七、小練習

嘗試用兩種循環實現“打印1到10的平方”:
- for循環:用range(1,11)遍歷,每次計算num*num
- while循環:初始化count=1,循環內計算平方,同時count +=1直到count>10

通過對比兩種寫法,你會更清晰地理解它們的區別~

循環是編程中處理重複任務的核心工具。掌握forwhile的特點後,就能根據實際場景靈活選擇,讓代碼更簡潔高效!

小夜