深度实践OpenStack:基于Python的OpenStack组件开发—3.4.6 else的特殊用法
【摘要】 本书摘自《深度实践OpenStack:基于Python的OpenStack组件开发》——书中第3章,3.4.6节,作者是喻涛、田亮、张家龙、赵利军、李飞。
3.4.6 else的特殊用法
先看一段代码:
for x in list_test:
print x
else:
print "list is empty"
这段代码的意思是循环输出list_test中的元素,如果list_test为空,那么就直接提示list_test为空。完整的语句表达如下:
if list_test:
for x in list_test:
print x
else:
print "list is empty"
可以看出,使用第一种方式,少了一次if判断。在单层循环,使用这种方式else子句的意义不是很大,但是,在嵌套循环中,这种用法就相当有用了。
再来看一个例子:使用辗转相除法(欧几里德算法)输出2~10之间的最大公约数。
for n in xrange(2, 10):
for x in xrange(2, n):
if n % x == 0:
print n, 'equals', x, '*', n/x break
else:
print n, 'is a prime number'
在这种地方灵活使用else子句,将大大减少由于if判断带来的时间消耗,并且语句也更加精炼。
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)