当前位置: 首页 > article >正文

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

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

  • 前言
  • C#的switch使用方式
  • python的switch操作
    • 第一种
    • 第二种
    • 第三种
  • 总结


前言

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


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操作。

python的switch操作

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

第一种

使用 if-elif-else

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需要转化,会更加花时间!


http://www.kler.cn/news/328329.html

相关文章:

  • [python][pipenv]pipenv的使用
  • 输出 / 目录下所有目录文件的大小并排序
  • 如何改变音频声音大小?关于改变音频大小的方法介绍
  • NLP任务之文本分类(情感分析)
  • 简单vue指令实现 el-table 可拖拽表格功能
  • Qt C++设计模式->享元模式
  • Windows远程Kylin系统-xrdp
  • CTF中文件包含
  • 【优选算法】(第三篇)
  • IDEA 系列产品 下载
  • 前后端传参
  • Android 已经过时的方法用什么新方法替代?
  • 通信工程学习:什么是SMTP简单邮件传输协议
  • windows C++-计划组
  • 机器学习西瓜书——线性判别分析LDA
  • 使用PyTorch实现自然语言处理:从基础到实践
  • Go基础学习07-map注意事项;多协程对map的资源竞争;sync.Mutex避免竟态条件
  • QEMU使用Qemu-Guest-Agent传输文件、执行指令等
  • http增删改查四种请求方式操纵数据库
  • k8s 1.28.2 集群部署 ingress 1.11.1 包含 admission-webhook
  • Qt 中的 QListWidget、QTreeWidget 和 QTableWidget:简化的数据展示控件
  • 开发微信小程序 基础03
  • scala 2.12 error: value foreach is not a member of Object
  • 低代码用户中心:构建高效便捷的用户管理平台
  • VUE 开发——AJAX学习(二)
  • 51单片机学习第五课---B站UP主江协科技
  • 【网络安全】消息鉴别
  • 五.海量数据实时分析-FlinkCDC+DorisConnector实现数据的全量增量同步
  • Require:基于雪花算法完成一个局部随机,全局离散没有热点切唯一的数值Id生成器。
  • FileLink跨网文件交换:高效、安全、灵活的企业文件传输新方案