Python for-else 循环



Python - For Else 循环

Python 支持将可选的 else 块与 for 循环相关联。如果 else 块与 for 循环一起使用,则仅当 for 循环正常终止时,才会执行该块。

for 循环在完成所有迭代而没有遇到 break 语句时正常终止,这允许我们在满足特定条件时退出循环。

For Else 循环流程图

以程图说明了 for-else 循环的使用 -

for-else

For Else 循环的语法

以下是带有可选 else 块的 for 循环的语法 -


for variable_name in iterable:
	#stmts in the loop
	.
	.
	.
else:
	#stmts in else clause
	.
	.

For Else 循环示例

以下示例说明了 Python 中 else 语句与 for 语句的组合。直到计数小于 5,才会打印迭代计数。当它变为 5 时,在将控制权传递给主程序中的下一条语句之前,将执行 else 块中的 print 语句。


for count in range(6):
	 	print ("Iteration no. {}".format(count))
else:
	 	print ("for loop over. Now in else block")
print ("End of for loop")

在执行时,此代码将生成以下输出 -

Iteration no. 1
Iteration no. 2
Iteration no. 3
Iteration no. 4
Iteration no. 5
for loop over. Now in else block
End of for loop

不带 break 语句的 For-Else 构造

如本教程前面所述,else 块仅在循环正常终止时执行,即不使用 break 语句。

在下面的程序中,我们使用不带 break 语句的 for-else 循环。


for i in ['T','P']:
	 	print(i)
else:
	 	# Loop else statement
	 	# there is no break statement in for loop, hence else part gets executed directly
	 	print("ForLoop-else statement successfully executed")

在执行时,上述程序将生成以下输出 -

T
P
ForLoop-else statement successfully executed

使用 break 语句的 For-Else 构造

如果循环强制终止(通过使用 break 语句),解释器会忽略 else 语句,因此会跳过它的执行。

下面的程序显示了 else 条件在 break 语句的情况下是如何工作的。


for i in ['T','P']:
	 	print(i)
	 	break
else:
	 	# Loop else statement
	 	# terminated after 1st iteration due to break statement in for loop
	 	print("Loop-else statement successfully executed")

在执行时,上述程序将生成以下输出 -

T

带有 break 语句和 if 条件的 For-Else

如果我们使用 for-else 构造和 break 语句和 if 条件,则 for 循环将迭代迭代器,在此循环中,您可以使用 if 块来检查特定条件。如果循环完成时未遇到 break 语句,则执行 else 块中的代码。

下面的程序显示了 else 条件在 break 语句和 conditional 语句的情况下是如何工作的。


# creating a function to check whether the list item is a positive
# or a negative number
def positive_or_negative():
	 	# traversing in a list
	 	for i in [5,6,7]:
	 	# checking whether the list element is greater than 0
	 	 	 if i>=0:
	 	 	 	 	# printing positive number if it is greater than or equal to 0
	 	 	 	 	print ("Positive number")
	 	 	 else:
	 	 	 	 	# Else printing Negative number and breaking the loop
	 	 	 	 	print ("Negative number")
	 	 	 	 	break
	 	# Else statement of the for loop
	 	else:
	 	 	 # Statement inside the else block
	 	 	 print ("Loop-else Executed")
# Calling the above-created function
positive_or_negative()

在执行时,上述程序将生成以下输出 -

Positive number
Positive number
Positive number
Loop-else Executed