声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好地理解AI技术,我让助理负责分享这套python系列教程,希望能帮到大家!由于这套python教程不是由我所写,所以不如我的AI技术教学风趣幽默,学起来比较枯燥;但它的知识点还是讲到位的了,也值得阅读!想要学习AI技术的同学可以点击跳转到我的教学网站。PS:看不懂本篇文章的同学请先看前面的文章,循序渐进每天学一点就不会觉得难了!

循环else分句是Python特有的,一些初学者容易产生困惑。简而言之,循环else分句让你捕捉循环的“另一条”出路,而不通过设定和检查标志位。

例如,假设你要写个循环来搜索列表的值,而且需要知道在离开循环后该值是否已找到,你可能会用下面这种方式来编写该循环。

found = False

while x and not found:

if match(x[0]): # Value at front?

print('Ni')

found = True

else:

x = x[1:] # Slice off front and repeat

if not found:

print('not found')

在这里,我们对标志位进行初始化、设置然后再进行检测判断,从而确认搜索是否成功。以下是循环else分句的等效版本。

while x:                        # Exit when x empty

if match(x[0]):

print('Ni')

break # Exit,go around else

x = x[1:]

else:

print('Not found') # Only here if exhausted x

这个版本要更简洁一些。标志位不见了,而我们在循环末尾使用else取代了if测试。while主体内的break会离开循环并跳过else;如果break没有执行,那么else里的代码就会被执行。