Python基础教程 循环中的 else 子句

5.5.6 循环中的 else 子句

通常,在循环中使用break是因为你“发现”了什么或“出现”了什么情况。要在循环提前结束时采取某种措施很容易,但有时候你可能想在循环正常结束时才采取某种措施。如何判断循环是提前结束还是正常结束的呢?可在循环开始前定义一个布尔变量并将其设置为False, 再在跳出循环时将其设置为True。这样就可在循环后面使用一条if语句来判断循环是否是提前结束的。

broke_out = False

for x in seq:

do_something(x)

if condition(x):

broke_out = True

break

do_something_else(x)

if not broke_out:

print("I didn't break out!")

一种更简单的办法是在循环中添加一条else子句,它仅在没有调用break时才执行。继续前面讨论break时的示例。

from math import sqrt

for n in range(99, 81, -1):

root = sqrt(n)

if root == int(root):

print(n)

break

else:

print("Didn't find it!")

请注意,为测试else子句,我将下限改成了81(不包含)。如果你运行这个程序,它将打印"Didn't find it!",因为正如你在前面讨论break时看到的,小于100的最大平方值为81。无论是在for循环还是while循环中,都可使用continue、break和else子句。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180921G0ETUS00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券