[python]循环中的else子句

来源:互联网 发布:app微信支付php服务端 编辑:程序博客网 时间:2024/06/06 09:21

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

<pre name="code" class="python">broke_out = Falsefor 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 sqrtfor n in range(99, 81, -1):    root = sqrt(n)    if root == int(root):        print(n)        breakelse:    print("Didn't find it!")

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


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



0 0
原创粉丝点击