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 的迭代機制。