在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
0、背景今天看到了一个比较诡异的写法,for后直接跟了else语句,起初还以为是没有缩进好,查询后发现果然有这种语法,特此分享。之前写过c++和Java,在for后接else还是第一次见。 1、试验# eg1 import numpy as np for i in np.arange(5): print i else: print("hello?") # 0 # 1 # 2 # 3 # 4 # hello? 可以发现,在for正常结束后,break中的语句进行了执行。 # eg2 import numpy as np for i in np.arange(5): print i if (i == 3): break else: print("hello?") # 0 # 1 # 2 # 3 在这个例子当中,i==3的时候break出了循环,然后else当中的语句就没有执行。 2、总结总结起来比较简单,如果for循环正常结束,else中语句执行。如果是break的,则不执行。 工程性代码写的比较少,暂时没有想到很好的场景,为了不对其他同学造成干扰,这种形式还是少些一点较好。 官方文档也有解释:
补充:python里for和else的搭配 用找质数作为代码示例for i in range(2,10): for n in range(2,i): if i % n == 0: #print(i, '=', n, '*', i//n) break else: print('found it %s' %i) 注意:这里的 else 并不属于 if 代码块 根据官方文档的解释理解的意思:当迭代的对象迭代完并为空时,位于else的语句将会执行,而如果在for循环里有break时,则会直接终止循环,并不会执行else里的代码 写一个简单例子,用来辅助理解for i in range(10): if i == 7: print('found it %s'%i) break else: print('not found') 可以先运行代码,看一下运行结果,然后将代码块里的break注释掉再运行一遍,与第一次运行的结果进行比较,就会发现不同 补充:python中for—else的用法,执行完for执行else 结束for循环后执行elsefor i in range(5): print(i) else: print("打印else") 以上为个人经验,希望能给大家一个参考,也希望大家多多支持极客世界。 |
2022-05-27
2022-05-27
2022-05-27
2022-05-27
2022-05-27
请发表评论