您的位置:首页 > 编程语言 > Python开发

13-python_switch的实现

2013-10-05 16:14 411 查看
python 中的 switch 实现

- python中没有switch关键字

- 定义 字典

- 调用 字典的get(key)获取对应的表达式

1. 普通实现

from __future__ import division

def add(x, y) :

return x + y

def subtract(x, y) :

return x - y

def multiply(x, y) :

return x * y

def divide(x, y) :

return x / y

def calculate(x, y, symbol) :

if "+" == symbol :

print add(x, y)

elif "-" == symbol :

print subtract(x, y)

elif "*" == symbol :

print multiply(x, y)

elif "/" == symbol :

print divide(x, y)

else :

pass

calculate(1, 2, "+")

calculate(1, 2, "-")

calculate(1, 2, "*")

calculate(1, 2, "/")

2. 字典实现

- value 为 函数

from __future__ import division

def add(x, y) :

return x + y

def subtract(x, y) :

return x - y

def multiply(x, y) :

return x * y

def divide(x, y) :

return x / y

calculateDict = {"+":add, "-":subtract, "*":multiply, "/":divide}

#print calculateDict["+"](1,2)

#print calculateDict.get("+")(1,2)

def calculate(x, y, symbol) :

print calculateDict.get(symbol)(x, y)

calculate(1, 2, "+")

calculate(1, 2, "-")

calculate(1, 2, "*")

calculate(1, 2, "/")

3. 常用形式

from __future__ import division

def calculate(x, y, symbol) :

calculateDict = {

"+" : x + y ,

"-" : x - y ,

"*" : x * y ,

"/" : x / y

}

print calculateDict.get(symbol)

calculate(1, 2, "+")

calculate(1, 2, "-")

calculate(1, 2, "*")

calculate(1, 2, "/")
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: