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

更新日期: 2024 年 9 月 26 日

在 Python 編程中,for 迴圈 是一個強大且靈活的工具,用於遍歷序列(如列表、元組、字串)或其他可迭代物件。

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

本文將詳細介紹 Python 中的 for 迴圈,包括其基本語法、常見用法和實際應用,並提供豐富的示例,幫助你在實際開發中靈活運用。


什麼是 for 迴圈?

for 迴圈是一種迭代工具,允許你遍歷序列中的每一個元素,並對其進行操作。

與其他語言中的 for 迴圈不同,Python 的 for 更像是一種「遍歷器」,不需要使用索引值來控制迴圈。


for 迴圈的基本語法

for 變數 in 可迭代物件:
    執行語句
  • 變數:在每次迭代中,變數 會被賦值為可迭代物件中的下一個元素。
  • 可迭代物件:如列表、元組、字串、字典、集合等。
  • 執行語句:對每個元素要執行的代碼塊,需要正確縮排。

示例:遍歷列表

fruits = ['apple', 'banana', 'cherry']
for fruit in fruits:
    print(fruit)

輸出:

apple
banana
cherry

遍歷不同類型的可迭代物件

遍歷字串

text = "Python"
for char in text:
    print(char)

輸出:

P
y
t
h
o
n

遍歷元組

numbers = (1, 2, 3)
for num in numbers:
    print(num)

輸出:

1
2
3

遍歷字典

遍歷字典時,默認遍歷的是鍵。

person = {'name': 'Alice', 'age': 25}
for key in person:
    print(key)

輸出:

name
age

如果要同時獲取鍵和值:

for key, value in person.items():
    print(f"{key}: {value}")

輸出:

name: Alice
age: 25

使用 range() 函數生成數字序列

range() 函數返回一個可迭代的數字序列,常用於生成一系列數字。

基本用法

for i in range(5):
    print(i)

輸出:

0
1
2
3
4

說明:

  • range(5) 生成從 0 到 4 的數字序列,不包含 5。

指定起始和結束

for i in range(1, 6):
    print(i)

輸出:

1
2
3
4
5

說明:

  • range(1, 6) 生成從 1 到 5 的數字序列。

指定步長

for i in range(0, 10, 2):
    print(i)

輸出:

0
2
4
6
8

說明:

  • range(0, 10, 2) 生成從 0 到 8 的數字序列,步長為 2。

使用 enumerate() 獲取索引和值

在遍歷列表等序列時,如果需要同時獲取索引和值,可以使用 enumerate() 函數。

示例:

fruits = ['apple', 'banana', 'cherry']
for index, fruit in enumerate(fruits):
    print(f"索引 {index}: {fruit}")

輸出:

索引 0: apple
索引 1: banana
索引 2: cherry

使用 zip() 同時遍歷多個序列

zip() 函數可以將多個序列「壓縮」在一起,返回一個元組的迭代器。

示例:

names = ['Alice', 'Bob', 'Charlie']
ages = [25, 30, 35]

for name, age in zip(names, ages):
    print(f"{name} 的年齡是 {age} 歲。")

輸出:

Alice 的年齡是 25 歲。
Bob 的年齡是 30 歲。
Charlie 的年齡是 35 歲。

for 迴圈中的 else 子句

for 迴圈可以帶有一個 else 子句,當迴圈正常結束(沒有被 break 打斷)時,else 子句中的代碼會被執行。

示例:

for i in range(5):
    if i == 3:
        break
    print(i)
else:
    print("迴圈正常結束。")

輸出:

0
1
2

說明:

  • 當 i == 3 時,迴圈被 break 打斷,因此 else 子句未被執行。

再看一個例子:

for i in range(5):
    print(i)
else:
    print("迴圈正常結束。")

輸出:

0
1
2
3
4
迴圈正常結束。

for 迴圈中的 break 和 continue

break 語句

break 用於提前結束迴圈。

示例:

for i in range(5):
    if i == 2:
        break
    print(i)

輸出:

0
1

continue 語句

continue 用於跳過本次迭代,直接進入下一次迭代。

示例:

for i in range(5):
    if i == 2:
        continue
    print(i)

輸出:

0
1
3
4

嵌套的 for 迴圈

for 迴圈可以相互嵌套,用於遍歷多維數據結構。

示例:

matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

for row in matrix:
    for item in row:
        print(item, end=' ')
    print()

輸出:

1 2 3 
4 5 6 
7 8 9 

實際應用示例

計算列表中數字的總和

numbers = [1, 2, 3, 4, 5]
total = 0
for num in numbers:
    total += num
print(f"總和為:{total}")

輸出:

總和為:15

找到列表中的最大值

numbers = [5, 3, 8, 6, 7]
max_num = numbers[0]
for num in numbers:
    if num > max_num:
        max_num = num
print(f"最大值為:{max_num}")

輸出:

最大值為:8

遍歷字串,計算元音字母的數量

text = "Hello, Python!"
vowels = 'aeiouAEIOU'
count = 0
for char in text:
    if char in vowels:
        count += 1
print(f"元音字母的數量為:{count}")

輸出:

元音字母的數量為:4

注意事項

正確使用縮排

  • 在 for 迴圈中,代碼塊必須正確縮排。
  • 建議使用 4 個空格作為縮排。

避免無限迴圈

  • for 迴圈一般不會產生無限迴圈,但如果可迭代物件是無限的,可能會導致程式無法結束。

修改迴圈中的列表

  • 在迴圈中修改正在遍歷的列表,可能會導致意外的結果。
  • 建議:如果需要修改列表,考慮遍歷列表的副本或使用列表推導式。

結論

for 迴圈是 Python 中最常用的控制流程語句之一。

透過掌握 for 迴圈的用法,你可以高效地遍歷各種序列,進行資料處理和分析。

建議新手多加練習,嘗試在不同的情境下使用 for 迴圈,這將有助於你更深入地理解 Python 的迭代機制。


延伸閱讀

Similar Posts

發佈留言

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