您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:Python 使用dict实现switch的操作

51自学网 2021-10-30 22:46:20
  python
这篇教程Python 使用dict实现switch的操作写得很实用,希望能帮到您。

Python3还是没有switch,可以利用if-else来实现,但是非常不方便。使用dict来实现会比较简洁优雅。

# -*- coding: utf-8 -*-"""Python利用dict实现switch""" def add(x, y): return x + y  def subtract(x, y): return x - y           def multiply(x, y): return x * y def divide(x, y):  assert(y != 0)        return x / y mapping = {"+": add, "-": subtract, "*": multiply, "/": divide} def cal(x, y, symbol="+"):  assert(symbol in mapping)  return mapping.get(symbol)(x, y) if __name__ == "__main__":  result = cal(3, 0, "&")

补充:python 字典dict实现switch case【实际应用】(非dict.get()方法实现)

看了不少帖子,几乎都是采用字典的.get()方法实现,据说有个弊端:“会将字典每个带括号的方法都执行一遍”。

以下方法可避免该弊端,并可以传参。如有不足请指正!

#!/usr/bin/python3 # conf_cmd = conf_items["cmd"].split(":")[0] test_no = "T1"#test_no = "T2"#test_no = "T3" id = 1 def test1(id):  print("test1:%d" % id) def test2(id):  print("test2") def test3(id):  print("test3") funcs = {"T1": test1,     "T2": test2,     "T3": test3} try:  func = funcs[test_no]  func(id)except Exception:  pass

输出:

test1:1

补充:Python实现类似switch的分支结构

switch语句相信大家都很熟悉,而且swith语句表达的分支结构比if...elif...else语句表达更清晰,代码的可读性更高,但是在Python中,却没有提供这一个关键字。那我们该如何通过其他方式来实现这类似的结构呢?

虽然没有switch语句,但是我们可以通过Python中的dict即字典来实现类似switch结构的方法

实现代码如下:

def operator(o,x,y): result={     '+' : x+y,     '-' : x-y,     '*' : x*y,     '/' : x/y  } print(result.get(o))oper=input()//接收从键盘输入的数据operator(oper,4,2)

运行效果如下所示:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持51zixue.net。如有错误或未考虑完全的地方,望不吝赐教。


Python 把两层列表展开平铺成一层(5种实现方式)
python多线程超详细详解
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。