Python中的Switch语句实现

Python中的Switch语句实现

switch语句

switch语句用于编写多分支结构的程序,类似与if…elif…else语句
switch语句表达的分之结构比if…elif…else语句表达的更清晰,代码的可读性更高

Python中没有switch语句关键字,但可以通过字典dict实现switch语句的功能,实现方法分为两步:首先,定义一个字典;其次,调用字典的get()获取相应的表达式

switch有什么好处?

函数调用,通过字典调用函数{1:case1,2:case2}.get(x,lambda *arg,**key:)()

case-通过if语句进行±*/运算

def jia(x,y):
	return x+y
def jian(x,y):
	return x-y
def cheng(x,y):
	return x*y
def chu(x,y):
	return x/y

def operator(x,o,y):
	if o=='+':
		jia(x,y)
	elif o=='-':
		jian(x,y)
	elif o=='*':
		cheng(x,y)
	elif o=='/':
		chu(x,y)
	else:
		pass

print(operator(2,'+',4))

这样写函数,当执行除法操作时,前3次判断都是多余的,效率较低,if...elif...else语句天生会有优先级的区分

用dict类型改写switch语句如下;

operator={'+':jia,'-':jian,'*':cheng,'/':chu}
print(operator['+'])
<function jia at 0x00000000030F6400>
>>> operator['+'](2,3)
5
>>> print(operator['+'](2,3))
5
>>> 

根据dict字典类型数据的特性,如果没有对应[key],会报错,那我们可以改用dict.get()方法替换替换对key-value的获取,即switch判断。

>>> print(operator.get('*')(5,3))
15
>>> 

>>> def f(x,o,y):
	print(operator.get(o)(x,y))

>>> f(3,'*',9)
27
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值