前言
在习惯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相当于key与value。通过key找value来类似switch的操作。如果 n 不存在,则返回默认值 "Default case"。
这是我自己用起来最好用,目前感觉代码量最少的。但是如果你需要获取的是数值,可能会出现转化问题!
总结
以上就是今天要讲的内容,本文仅仅简单介绍了Python与C#关于switch的使用区别。总的来说,C#中使用可能更便捷,python使用switch需要转化,会更加花时间!