深度实践OpenStack:基于Python的OpenStack组件开发—3.4 流程控制
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,那么推荐使用字典的方式来实现。
- 点赞
- 收藏
- 关注作者
评论(0)