遍歷就是從頭到尾依次從列表中獲取數據,在循環體內部針對每一個元素,執行相同的操作。
在Python中為了提高列表的遍歷效率,專門提供的迭代(iteration)遍歷。
使用 for...in
就能夠在 Python 中實現迭代遍歷。
在 Python 中,for 循環可以遍歷任何序列的項目,如列表、元組、字典以及字符串。
本文只用列表作簡單舉例,涉及到個別數據類型的特殊用法,我們后面再補充。
for...in 循環流程圖
for基礎用法
語法格式:
# for 循環內部使用的變量 in 列表
for name in name_list:
循環內部針對列表元素進行操作
print(name)
盡管 Python 的列表中可以存儲不同類型的數據,但是在開發中,更多的應用場景是用列表存儲相同類型的數據。
通過迭代遍歷,在循環體內部,針對列表中的每一項元素,執行相同的操作。
實例
fruits = ['banana', 'apple', 'mango']
for fruit in fruits:
print("當前水果 : %s" % fruit)
#當前水果 : banana
#當前水果 : apple
#當前水果 : mango
我們也通過序列索引來進行迭代循環。
fruits = ['banana', 'apple', 'mango']
for index in range(len(fruits)):
print('當前水果 : %s' % fruits[index])
#當前水果 : banana
#當前水果 : apple
#當前水果 : mango
我們使用了內置函數 len() 和 range()。
函數 len() 返回列表的長度,即元素的個數。
函數 range() 返回一個序列的數,用於生成一系列連續整數,多用於 for 循環中。
循環使用 else 語句
else 中的語句會在循環正常執行完的情況下執行,即 for循環不是通過 break 跳出而中斷的,while … else 也是一樣。
實例
# 迭代 10 到 20 之間的數字
for num in range(10, 20):
# 根據因子迭代
for i in range(2, num):
if num % i == 0:
j = num/i
print('%d 等於 %d * %d' % (num, i, j))
break
# 循環的 else 部分
else:
print('%d是一個質數' % num)
結果
10 等於 2 * 5
11是一個質數
12 等於 2 * 6
13是一個質數
14 等於 2 * 7
15 等於 3 * 5
16 等於 2 * 8
17是一個質數
18 等於 2 * 9
19是一個質數