在 Python 中,for
关键字提供了更全面的机制来构成循环。 for
循环用于序列类型,如列表、元组、集合、范围等。
对序列中的每个成员元素执行for
循环的主体。因此,它不需要显式验证控制循环的布尔表达式(如 while
循环)。
Syntax:
for x in sequence:
statement1
statement2
...
statementN
首先,for 语句中的变量x
引用序列中 0 索引处的项目。 将执行:
符号后缩进量增加的语句块。一个变量x
现在引用下一个项目,并重复循环的主体,直到序列结束。
以下示例演示了带有列表对象的 for
循环。
Example:
nums = [10, 20, 30, 40, 50]
for i in nums:
print(i)
Output
10
20
30
40
50
下面演示了带有元组对象的 for
循环。
Example: For Loop with Tuple
nums = (10, 20, 30, 40, 50)
for i in nums:
print(i)
Output
10
20
30
40
50
任何 Python 序列数据类型的对象都可以使用 for 语句进行迭代。
Example: For Loop with String
for char in 'Hello':
print (char)
Output
H
e
l
l
o
下面的for
循环使用项()方法遍历字典。
Example: For Loop with Dictionary
numNames = { 1:'One', 2: 'Two', 3: 'Three'}
for pair in numNames.items():
print(pair)
Output
(1, 'One')
(2, 'Two')
(3, 'Three')
键值 paris 可以在for
循环中解包成两个变量,分别得到键值。
Example: For Loop with Dictionary
numNames = { 1:'One', 2: 'Two', 3: 'Three'}
for k,v in numNames.items():
print("key = ", k , ", value =", v)
Output
key = 1, value = One
key = 2, value = Two
key = 3, value = Three
对于带范围()函数的循环
range
类是不可变的序列类型。范围()返回可与for
循环一起使用的range
对象。
Example:
for i in range(5):
print(i)
Output
0
1
2
3
4
退出 for
循环
在某些情况下,可以使用break
关键字停止并退出 for
循环的执行,如下所示。
Example:
for i in range(1, 5):
if i > 2
break
print(i)
Output
1
2
继续下一次迭代
使用continue
关键字跳过当前执行,并在某些条件下使用continue
关键字继续下一次迭代,如下所示。
Example:
for i in range(1, 5):
if i > 3
continue
print(i)
Output
1
2
3
对于带其他块的循环
else
块可以跟随for
循环,该循环将在for
循环结束时执行。
Example:
for i in range(2):
print(i)
else:
print('End of for loop')
Output
0
1
End of for loop
循环嵌套
如果一个循环(for
循环或 while
循环)在其主体块中包含另一个循环,我们说这两个循环是嵌套的。如果外循环被设计为执行 m 次迭代,而内循环被设计为执行 n 次重复,那么内循环的主体块将被执行 m×n 次。
Example: Nested for loop
for x in range(1,4):
for y in range(1,3):
print('x = ', x, ', y = ', y)
Output
x = 1, y = 1
x = 1, y = 2
x = 2, y = 1
x = 2, y = 2
x = 3, y = 1
x = 3, y = 2