Python 如何理解循环中的else子句

Python 如何理解循环中的else子句

在Python编程中,循环的语法包括一个可选的else子句。这是Python与其他编程语言不同的独特特性。

通常情况下,循环的主体会基于循环条件重复执行,并在完成条件的迭代后开始执行后面的语句。但在Python循环中,我们可以在循环退出之前,在完成所有迭代后执行一个else块。

语法

以下是for循环中else子句的语法:

for variable_name in iterable:
    # statements
else:
    # statements

以下是while循环中else子句的语法

while condition:
    #statements
else:
    #statements

示例1

让我们看看下面的示例,了解else子句在for循环中的工作原理。在这里,else块的语句在for循环完成所有迭代后执行。

for x in range(3):
    print('Inside the loop',x)
else:
    print('Else block of the loop')
print('Outside loop')

输出

Inside the loop 0
Inside the loop 1
Inside the loop 2
Else block of the loop
Outside loop

示例2

让我们看一个while循环中的else子句的例子

x = 3
while  x:
    print('Inside the loop',x)
    x -= 1
else:
    print('Else block of the loop')
print('Outside loop')

输出

Inside the loop 3
Inside the loop 2
Inside the loop 1
Else block of the loop
Outside loop

注意: 在上面的例子中,结果显示在退出循环之前执行了 while 循环的 else 块。请注意,如果循环被 break 语句终止,则 else 子句将不会被执行。

示例3

在这个例子中,for 循环通过使用 break 终止,因此 else 块不会被执行。

for x in range(3):
    print('Inside the loop',x)
    break
else:
    print('Else block of the loop')
print('Outside loop')

输出

Inside the loop 0
Outside loop

示例4

在此示例中,由于循环被break终止,因此else块不会被执行。

x = 3
while  x:
    print('Inside the loop',x)
    x -= 1
    break
else:
    print('Else block of the loop')
print('Outside loop')

输出

Inside the loop 3
Outside loop

示例5

让我们看另一个示例

def foo():
    for i in range(10):
        print('i: ',i)
        if i == 3:
            return 
    else:
        print("Completed successfully")

foo()

输出

i:  0
i:  1
i:  2
i:  3

此外,如果存在 return 子句,else 块将不会被执行,因为 return 立即离开函数。如上方输出所示,由于循环中有 return 关键字,所以 else 块不会执行。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程