Python中的Switch语句实现

    技术2025-10-05  5

    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
    Processed: 0.011, SQL: 9