本文翻译自:What is the Python equivalent for a case/switch statement? [duplicate]

This question already has an answer here: 这个问题在这里已有答案:

  • Replacements for switch statement in Python? Python中的switch语句的替换? 44 answers 44个答案

I'd like to know, is there a Python equivalent for the case statement such as the examples available on VB.net or C#? 我想知道,是否有一个Python等效的case语句,如VB.net或C#上提供的示例?


#1楼

参考:https://stackoom.com/question/mAQK/case-switch语句的Python等价物是什么-重复


#2楼

While the official docs are happy not to provide switch, I have seen a solution using dictionaries . 虽然官方文档很乐意不提供切换,但我看到了使用词典的解决方案 。

For example: 例如:

# define the function blocks
def zero():print "You typed zero.\n"def sqr():print "n is a perfect square\n"def even():print "n is an even number\n"def prime():print "n is a prime number\n"# map the inputs to the function blocks
options = {0 : zero,1 : sqr,4 : sqr,9 : sqr,2 : even,3 : prime,5 : prime,7 : prime,
}

Then the equivalent switch block is invoked: 然后调用等效的开关块:

options[num]()

This begins to fall apart if you heavily depend on fall through. 如果你严重依赖于跌倒,这就开始分崩离析了。


#3楼

The direct replacement is if / elif / else . 直接替换是if / elif / else

However, in many cases there are better ways to do it in Python. 但是,在许多情况下,有更好的方法在Python中执行此操作。 See " Replacements for switch statement in Python? ". 请参阅“ Python中的switch语句的替换? ”。

case / switch语句的Python等价物是什么? [重复]相关推荐

  1. c语言case两个变量的组合,我可以使用带有两个变量的case/switch语句吗?

    DashK.. 21 一个按位运算符怎么样?而不是字符串,你处理"enums",看起来更"优雅". // Declare slider's state &quo ...

  2. Python学习(13)--Lambda表达式和switch语句的实现

    1.Lambda表达式定义匿名函数    在Python中,Lambda表达式是用来快速定义一个最小函数,这个函数小到什么程度呢,小到只有一行代码,一条语句,在Python中有时候我们为了提高程序的可 ...

  3. 【译】为什么我更喜欢对象而不是switch语句

    原文自工程师Enmanuel Durán博客,传送门 最近(或者不是最近,这完全取决于您什么时候阅读这边文章),我正在跟我的团队伙伴讨论如何去处理这种需要根据不同的值去处理不同的情况的方法,通常对于这 ...

  4. Python 为什么不支持 switch 语句?

    " 阅读本文大概需要 10 分钟. " 在这篇文章里,我们会聊一聊为什么 Python 决定不支持 switch 语句. 为什么想要聊这个话题呢? 主要是因为 switch 在其它 ...

  5. Python中如何优雅地使用switch语句

    文章目录 Python中如何优雅地使用switch语句 案例一(简单情况) 案例二(带条件判断) 版权声明:本文为博主原创文章,转载请注明原文出处! 写作时间:2019-03-07 13:49:45 ...

  6. Go 学习笔记(62)— Go 中 switch 语句中的 switch 表达式和 case 表达式之间的关系

    switch 语句对 switch 表达式的结果类型,以及各个 case 表达式中子表达式的结果类型都是有要求的. 毕竟,在 Go 语言中,只有类型相同的值之间才有可能被允许进行判等操作. 1. sw ...

  7. switch的case使用数组C语言,使用常量数组的元素作为switch语句中的case

    我正在尝试将一组按键映射到一组命令.因为我处理来自多个地方的命令,所以我想在键和命令之间设置一个抽象层,这样如果我更改底层键映射,我就不必更改很多代码.我目前的尝试看起来像这样: // input.h ...

  8. switch语句中在case块里声明变量会遇到提示“Expected expression before...的问题

    switch语句中在case块里声明变量会遇到提示"Expected expression before..."的问题 例如在如下代码中 1 case constant: 2 in ...

  9. C 判断 —— switch语句(多个switch值与一组语句联系起来、case顺序是可任意的,default不一定是最后一个case)

    一个 switch 语句允许测试一个变量等于多个值时的情况.每个值称为一个 case,且被测试的变量会对每个 switch case 进行检查. 流程图 //下面的语句是由用户输入的char变量值来控 ...

最新文章

  1. Keras【Deep Learning With Python】LSTM 循环神经网络解决Regressor回归问题
  2. 白话Elasticsearch72_利用HDFS备份与恢复ES生产集群的数据
  3. comsol分析时总位移代表什么_超弹性材料模型的压缩分析
  4. 全面永久退出!又一巨头被逼上绝路!
  5. 面向对象编程──走错了路?
  6. 08.28 JavaScript 边界 选择修饰符 模式单元 修饰符 正则的使用
  7. 前端链接共享(记录)
  8. J2EE (十) Java中多种方式实现单例模式
  9. qxdm无法安装问题闪一下_关于QXDM的安装,解决Win7下QIK报错的问题
  10. 示波器的阻抗1M欧和50欧、探头
  11. python中oserror_[python] 解决OSError:
  12. python爬取公众号文章如何获取发布时间
  13. Reggie外卖项目 —— 项目开发整体介绍
  14. 倍福--授权文件拷贝
  15. chrome总是提示\喔唷,崩溃啦\的解决办法
  16. 医院病历的中英文翻译,医生病历本翻译
  17. ffmpeg硬件解码器的使用
  18. 快速入门CSS || 干货 自整语句大全
  19. 携手紫光展锐坦克邦,共建生态圈
  20. linux禁用usb存储不禁用鼠标,禁用USB 不影响USB鼠标键盘 | 吴文辉博客

热门文章

  1. 《像计算机科学家一样思考Python》——4.4 封装
  2. tomcat安装-tomcat8.5
  3. 手机Web 开发中图片img 如何等比例缩放
  4. Windows 键盘快捷键概述
  5. 谁知道怎么编写侧边栏的代码吗?
  6. mac系统不能使用127.0.0.2的解决方案
  7. MsSQL SQLServer 查询 表中字段的及类型是否为空
  8. director 3d tank
  9. 巧用 Nginx 快速实现 HTTPS 双向认证
  10. Zabbix对接AD域