首页 > 解决方案 > Python:while循环中“else”的目的

问题描述

我的问题是为什么在 while 循环中有一个“else”子句这样的东西。例如,我的代码如下所示:

a = 100
turns = 0
while a > 0:
    if func(a, b): #Function returns boolean value
        a -= 1
        turns += 1
    else:
        a -= 2
        turns += 1
else:
    print(turns)

问题是,这与以下语法有何不同?

a = 100
turns = 0
while a > 0:
    if func(a, b): #Function returns boolean value
        a -= 1
        turns += 1
    else:
        a -= 2
        turns += 1
print(turns)

标签: pythonwhile-loop

解决方案


不同之处在于它如何处理异常退出循环,例如break

while True:
    break
else:
    print("not printed")
print("printed")

这同样适用于循环体内引发的异常。


推荐阅读