Python for循环

Python For循环用于顺序遍历,即用于迭代String、Tuple、List、Set或Dictionary等可迭代对象。 

注意:在Python中,for循环仅实现基于集合的迭代。

For 循环语法

for 变量 in 可迭代对象:
    # 执行循环体内的代码

流程图:

Python for循环

这里的可迭代对象是列表和元组等对象的集合。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