千家信息网

Python如何在for后接else

发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,这篇文章主要讲解了"Python如何在for后接else",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Python如何在for后接else"吧!0、背
千家信息网最后更新 2024年11月26日Python如何在for后接else

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

0、背景

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

1、试验

# eg1import numpy as npfor i in np.arange(5):    print ielse:    print("hello?")# 0# 1# 2# 3# 4# hello?

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

# eg2import numpy as npfor i in np.arange(5):    print i    if (i == 3):        breakelse:    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)        breakelse:    print('not found')

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

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

结束for循环后执行else

for i in range(5):     print(i)else:    print("打印else")

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

0