[python]循环中的else子句

当在循环内使用break语句时,通常是因为 “找到” 了某物或者因为某事 “发生” 了。在跳出时做一些事情是很简单的,比如 print (n) , 但是有些时候想要在没有跳出之前做些事情,那么怎么判断呢? 可以使用布尔变量,在循环前将其设定为False, 跳出后设定为True 。 然后再使用if 语句查看循环是否跳出了:

<pre name="code" class="python">broke_out = False
for x in set:
    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时执行。让我们用这种方法重写刚才的例子:

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!")

注意,下限是81(不包括81)以测试else子句, 执行程序的结果是,打印出“Didn't find it!” ,如果将下限改为80,则将打印出 81 。


for 和 while循环中都可以使用continue、 break语句和else子句。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值