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 块不会执行。