您的位置:

14. Python for循环

Python for循环

更新:

在 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