这篇文章主要讲解了“Python如何在for后接else”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python如何在for后接else”吧!

0、背景

今天看到了一个比较诡异的写法,for后直接跟了else语句,起初还以为是没有缩进好,查询后发现果然有这种语法,特此分享。之前写过c++和Java,在for后接else还是第一次见。

1、试验

#eg1importnumpyasnpforiinnp.arange(5):printielse:print("hello?")#0#1#2#3#4#hello?

可以发现,在for正常结束后,break中的语句进行了执行。

#eg2importnumpyasnpforiinnp.arange(5):printiif(i==3):breakelse:print("hello?")#0#1#2#3

在这个例子当中,i==3的时候break出了循环,然后else当中的语句就没有执行。

2、总结

总结起来比较简单,如果for循环正常结束,else中语句执行。如果是break的,则不执行。

工程性代码写的比较少,暂时没有想到很好的场景,为了不对其他同学造成干扰,这种形式还是少些一点较好。

补充:python里for和else的搭配

用找质数作为代码示例

foriinrange(2,10):forninrange(2,i):ifi%n==0:#print(i,'=',n,'*',i//n)breakelse:print('foundit%s'%i)

注意:这里的 else 并不属于 if 代码块

根据官方文档的解释理解的意思:当迭代的对象迭代完并为空时,位于else的语句将会执行,而如果在for循环里有break时,则会直接终止循环,并不会执行else里的代码

写一个简单例子,用来辅助理解

foriinrange(10):ifi==7:print('foundit%s'%i)breakelse:print('notfound')

可以先运行代码,看一下运行结果,然后将代码块里的break注释掉再运行一遍,与第一次运行的结果进行比较,就会发现不同

补充:python中for—else的用法,执行完for执行else

结束for循环后执行else

foriinrange(5):print(i)else:print("打印else")

感谢各位的阅读,以上就是“Python如何在for后接else”的内容了,经过本文的学习后,相信大家对Python如何在for后接else这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!