深度实践OpenStack:基于Python的OpenStack组件开发—3.4.6 else的特殊用法

举报
华章计算机 发表于 2019/06/06 12:21:02 2019/06/06
【摘要】 本书摘自《深度实践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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。