Python For循环用于顺序遍历,即用于迭代String、Tuple、List、Set或Dictionary等可迭代对象。
注意:在Python中,for循环仅实现基于集合的迭代。
For 循环语法:
for 变量 in 可迭代对象:
# 执行循环体内的代码
流程图:
这里的可迭代对象是列表和元组等对象的集合。for 循环内的缩进语句针对可迭代对象中的每个项目执行一次。每次循环时,变量 var 都会获取可迭代对象的下一项的值。
Python For 循环的示例
Python dict中的 For 循环
此代码使用 for 循环迭代字典并在新行上打印每个键值对。该循环将每个键分配给变量 i 并使用字符串格式来打印键及其相应的值。
# Iterating over dictionary
print("字典迭代")
d = dict()
d['xyz'] = 123
d['abc'] = 345
for i in d:
print("% s % d" % (i, d[i]))
输出:
字典迭代
xyz 123
abc 345
Python list中的 For 循环
此代码使用 for 循环迭代字符串列表,在新行上打印列表中的每个项目。该循环将每个项目分配给变量 I 并继续,直到列表中的所有项目都已处理完毕。
# Python program to illustrate
# Iterating over a list
l = ["i", "love", "jkhxw"]
for i in l:
print(i)
输出:
i
love
jkhxw
Python string中的 For 循环
此代码使用 for 循环迭代字符串并在新行上打印每个字符。该循环将每个字符分配给变量 i 并继续,直到处理完字符串中的所有字符。
# Iterating over a String
print("字符串迭代")
s = "jkhxw"
for i in s:
print(i)
输出:
字符串迭代
j
k
h
x
w
Python range中的 For 循环
此代码使用 for 循环与range()函数结合使用,生成从 0 开始,到(但不包括)10,步长为 2 的数字序列。对于序列中的每个数字,循环使用 print() 函数打印其值。输出将显示数字 0、2、4、6 和 8。
for i in range(0, 10, 2):
print(i)
输出:
0
2
4
6
8
python for循环嵌套
此代码使用嵌套的 for 循环来迭代两个数字范围(包括 1 到 3),并为两个循环的每个组合打印 i 和 j 的值。对于外循环中 i 的每个值,都会执行内循环。此代码的输出将打印从 1 到 3 的数字三次,因为 i 的每个值都与 j 的每个值组合。
for i in range(1, 4):
for j in range(1, 4):
print(i, j)
输出:
1 1
1 2
1 3
2 1
2 2
2 3
3 1
3 2
3 3
Python For 循环与 Zip()
此代码使用zip()函数并行迭代两个列表(水果和颜色)。for 循环在每次迭代中将两个列表的相应元素分配给变量fruit 和color。在循环内部,print() 函数用于显示水果值和颜色值之间的消息“is”。输出将显示水果列表中的每个水果以及颜色列表中相应的颜色。
fruits = ["apple", "banana", "cherry"]
colors = ["red", "yellow", "green"]
for fruit, color in zip(fruits, colors):
print(fruit, "is", color)
输出:
apple is red
banana is yellow
cherry is green
Python For 循环与元组
此代码使用带有元组拆包的 for 循环来迭代元组的元组。 在每次迭代中,内部元组中的值分别分配给变量 a 和 b,然后使用 print() 函数打印到控制台。 输出将显示内部元组中的每对值。
t = ((1, 2), (3, 4), (5, 6))
for a, b in t:
print(a, b)
输出:
1 2
3 4
5 6
循环控制语句
循环控制语句改变其正常顺序的执行。当执行离开作用域时,在该作用域中创建的所有自动对象都将被销毁。Python 支持以下控制语句。
Python for 循环和Continue 语句
Python continue 语句将控制权返回到循环的开头。
# 打印出不等于 'j' 和 'h' 的所有字符
for letter in 'jkhxw':
if letter == 'j' or letter == 'h':
continue
print('Current Letter :', letter)
输出:
Current Letter : k
Current Letter : x
Current Letter : w
带 Break 语句的 Python For 循环
Python的break语句将控制带出循环。
for letter in 'jkhxw':
# break the loop as soon it sees 'k'
# or 's'
if letter == 'k' or letter == 'x':
break
print('Current Letter :', letter)
输出:
Current Letter: h
注意,当循环遇到字符 ‘k’ 时,它立即使用 break
语句退出循环,所以循环在第一个 ‘k’ 后就结束了。因此,最后一个字符的值是 ‘h’,并且在 print
语句中打印出来。
带有 Pass 语句的 Python For 循环
pass是一个空语句,它不执行任何操作。
# An empty loop
for letter in 'jkhxw':
pass
print('Last Letter :', letter)
输出:
Last Letter: w
Python for 循环与range函数
Python range() 函数用于生成数字序列。根据用户传递给函数的参数数量,用户可以决定这一系列数字的开始和结束位置,以及一个数字与下一个数字之间的差异有多大。 next.range() 主要采用三个参数。
- start:要返回整数序列的起始整数
- stop:要返回之前的整数序列的整数。
整数范围以 – 1 结束。 - step:整数值,决定序列中每个整数之间的增量。
# 打印数字 0 到 9
for i in range(10):
print(i, end=" ")
# 计算前 10 个数字的和
sum = 0
for i in range(1, 10):
sum = sum + i
print("\n前 10 个数字的和 :", sum)
输出:
0 1 2 3 4 5 6 7 8 9
前 10 个数字的和 : 45
python for循环使用 else 条件
Python 还允许我们对循环使用 else 条件。仅当循环未由break语句终止时,才会执行for/while之后的else块。
for i in range(1, 4):
print(i)
else: # 在没有 break 的情况下正常完成循环时执行
print("No Break\n")
输出:
1
2
3
No Break