Python与C#关于switch的使用区别

184 阅读2分钟

前言

在习惯C#编程后,在多种解析情况下,都使用到了switch case,可以输入不同的值,来执行不同的操作或者定义。在最近项目使用过程中,接触到python,当出现需要根据不同数值执行不同操作时,发现python没有自带的switch case语句,根据资料与自己的使用,记录一下两者语言在使用switch的区别!


C#的switch使用方式

由于C#自带switch语句,可以在编写的过程中直接补全语法。

switch (value)
{
    case 1: xx;break;
    case 3: xx;break;
    case 4: xx;break;
    default:break;
}

这里就是将value输入switch中,根据value值得不同执行不同分支的内容。甚至还可以多分支执行相同的语句。

switch (value)
{
    case 1: 
    case 3:xx;break;
    
    case 4:xx;break;
    default:break;
}

这种情况下,就是当value为1或者3时,执行xx程序后再退出switch操作。 以上就是C#中switch的简单操作!

python的switch操作

由于python没有自带的switch操作,就需要我们自己编写来实现。

第一种

第一种方式,使用 if-elif-else,使用if来进行条件判断,满足条件执行一种操作,满足什么条件执行什么操作,符合switch的使用需求。

def switch_case(case):
    if case == 1:
        return "Case 1"
    elif case == 2:
        return "Case 2"
    elif case == 3:
        return "Case 3"
    else:
        return "Default case"

# 使用
case_value = 2
result = switch_case(case_value)
print(result)  

第二种

match匹配使用,无法评论,实在match装不上去,放弃了。

看着应该很好用,大家可以自己使用一下。应该是最接近switch的方式。

def switch(value):
    match value:
        case 1:
            return "Case 1"
        case 2:
            return "Case 2"
        case _:
            return "Default case"
# 使用
case_value = 2
result = switch(case_value)
print(result)  # 输出: Case 2

这里就不作过多的介绍了。

第三种

switcher = {
    0: xx,    #case 1
    1: yy,    #case 2
    2: zz,    #case 3
}
action=switcher.get(n, "Default case")

这种是以n为输入数据,根据n的不同来获取对应的数据,可以理解为字典。0: xx相当于keyvalue。通过keyvalue来类似switch的操作。如果 n 不存在,则返回默认值 "Default case"

这是我自己用起来最好用,目前感觉代码量最少的。但是如果你需要获取的是数值,可能会出现转化问题!


总结

以上就是今天要讲的内容,本文仅仅简单介绍了Python与C#关于switch的使用区别。总的来说,C#中使用可能更便捷,python使用switch需要转化,会更加花时间!