All about for Loops in Python

2023-09-17 22:15:12

在Python中,for循环用于迭代序列类型,如listtuplesetrange等。 与其他编程语言不同,它不能用于重复执行某些代码。

for循环的主体为序列中的每个成员元素执行。因此,它不需要显式验证控制循环的布尔表达式(如在 while 循环中)。

语法:
for x in sequence:
    statement1
    statement2
    ...
    statementN

首先,for 语句中的变量x引用序列中 0 索引处的项。 将执行在:符号之后增加统一缩进的语句块。变量x现在引用下一项并重复循环主体,直到序列耗尽。

下面的示例演示了带有 list 对象的 for 循环。

nums = [10, 20, 30, 40, 50]
for i in nums:
    print(i)

输出:

10
20
30
40
50

下面演示了带有元组对象的 for 循环。

nums = (10, 20, 30, 40, 50)
for i in nums:
    print(i)

输出:

10
20
30
40
50

任何 Python 序列数据类型的对象都可以使用 for 语句进行迭代。

for char in 'Hello':
    print (char)

输出:

H
e
l
l
o

以下for循环使用 items() 方法循环访问dictionary

numNames = { 1:'One', 2: 'Two', 3: 'Three'}
for pair in numNames.items():
    print(pair)

输出:

(1, 'One')
(2, 'Two')
(3, 'Three')

键值 paris 可以在 for 循环中解压缩为两个变量,以分别获取键和值。

numNames = { 1:'One', 2: 'Two', 3: 'Three'}
for k,v in numNames.items():
    print("key = ", k , ", value =", v)

输出:

key = 1, value = One
key = 2, value = Two
key = 3, value = Three

带有 range() 函数的 For 循环

range类是不可变的序列类型。range()返回可与for循环一起使用的range对象。

for i in range(5):
    print(i)

输出:

0
1
2
3
4

退出 For 循环

在某些情况下,可以使用 break 关键字停止和退出 for 循环的执行,如下所示。

for i in range(1, 5):
    if i > 2 :
        break
    print(i)

输出:

1
2

继续下一次迭代

使用

continue 关键字跳过当前执行,并在某些条件下使用 continue 关键字继续下一次迭代,如下所示。

for i in range(1, 5):
    if i > 3:
        continue
    print(i)

输出:

1
2
3

对于带有 Else 块的循环

else块可以遵循for循环,该循环将在for循环结束时执行。

for i in range(2):
    print(i)
else:
     print('End of for loop')

输出:

0
1
End of for loop

Nested for Loop

如果一个循环(for 循环或 while 循环)在其主体块中包含另一个循环,我们说这两个循环是嵌套的。如果外循环设计为执行 m 次迭代,而内循环设计为执行 n 次重复, 内部循环的主体块将被执行 m X n 次。

for x in range(1,4):
    for y in range(1,3):
        print('x = ', x, ', y = ', y) 

输出:

x =  1, y =  1
x =  1, y =  2
x =  2, y =  1
x =  2, y =  2
x =  3, y =  1
x =  3, y =  2