深度实践OpenStack:基于Python的OpenStack组件开发—3.4 流程控制

举报
华章计算机 发表于 2019/06/06 11:35:03 2019/06/06
【摘要】 本书摘自《深度实践OpenStack:基于Python的OpenStack组件开发》——书中第3章,3.4.1节,作者是喻涛、田亮、张家龙、赵利军、李飞。

3.4 流程控制

常用的流程控制语句如下:if …else…、if …elif …else、while循环、for循环、try…cache…finally等。为了更好地理解流程控制,下面以bool类型为例进行讲解。bool类型的值只有两个:True和False。然而,和Java不同的是,在Python中,还有扩展的bool类型:非空值或者非0值为True,空值或者0值为False。

特殊的类型:None。None表示空,和Java中的null、C中的NULL一样,这个值的bool属性是False。

3.4.1 if语句

常用的判断语句为if...else...。例如:

debug = False

if debug:

    print "+++++++++" 

else:

    print "========="


debug = None

if debug:

    print "+++++++++"

else:

    print "========="


debug = 0 

if debug:

    print "+++++++++" 

else:

    print "========="


debug = "" 

if debug:

    print "+++++++++" 

else:

    print "========="


debug = [] 

if debug:

    print "+++++++++" 

else:

    print "========="


debug = {} 

if debug:

    print "+++++++++"

else:

    print "========="

当出现多重判断的时候,在Java和C语言中,一般使用if…else if …else来进行处理。和其他语言不一样,Python并没有相同的控制结构,取而代之的则是if…elif…else,这一点请牢记。

Python中不支持switch语法。前面讲解字典的时候,提到字典的值可以是任意类型,基于此,如果Python中需要实现多分支判断操作,那么有两种方式可供选择:使用if…elif…else,或者使用字典。下面是使用字典的代码示例。

def hello(): 

    pass

def world(): 

    pass

operation = {"first":hello,"second":world}


operation[key]()

在以上这段代码中,只需要指定key,便可以执行不同的代码,实现与swich语句相同的功能。注意,在实现多分支操作的时候,使用if…elif…else会进行额外的操作,因此这种方式的执行效率会比使用字典的方式慢。

这里提出Python性能优化的第四条原则:处理多分支语句时,如果分支数大于4,那么推荐使用字典的方式来实现。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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