Python 使用dict实现switch的操作


Posted in Python onApril 07, 2021

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)

运行效果如下所示:

Python 使用dict实现switch的操作

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

Python 相关文章推荐
python sys模块sys.path使用方法示例
Dec 04 Python
进一步了解Python中的XML 工具
Apr 13 Python
Python基于递归算法实现的走迷宫问题
Aug 04 Python
一个月入门Python爬虫学习,轻松爬取大规模数据
Jan 03 Python
tensorflow: variable的值与variable.read_value()的值区别详解
Jul 30 Python
在python中使用with打开多个文件的方法
Jan 07 Python
用Cython加速Python到“起飞”(推荐)
Aug 01 Python
python并发编程 Process对象的其他属性方法join方法详解
Aug 20 Python
Python数据可视化处理库PyEcharts柱状图,饼图,线性图,词云图常用实例详解
Feb 10 Python
Python QTimer实现多线程及QSS应用过程解析
Jul 11 Python
如何快速一次性卸载所有python包(第三方库)呢
Oct 20 Python
Python selenium的这三种等待方式一定要会!
Jun 10 Python
Python 把两层列表展开平铺成一层(5种实现方式)
Apr 07 #Python
Python获取百度热搜的完整代码
详解Python小数据池和代码块缓存机制
Apr 07 #Python
浅谈Python列表嵌套字典转化的问题
Apr 07 #Python
python pyhs2 的安装操作
Apr 07 #Python
python3 sqlite3限制条件查询的操作
Apr 07 #Python
python实现高效的遗传算法
You might like
全国中波电台频率表
2020/03/11 无线电
PHP 使用pcntl和libevent 实现Timer功能
2013/10/27 PHP
php表单提交实例讲解
2015/11/12 PHP
php实现微信支付之现金红包
2018/05/30 PHP
Prototype使用指南之ajax
2007/01/10 Javascript
node.js中的fs.writeFile方法使用说明
2014/12/14 Javascript
JavaScript 事件绑定及深入
2015/04/13 Javascript
JS实现带提示的星级评分效果完整实例
2015/10/30 Javascript
基于Bootstrap使用jQuery实现简单可编辑表格
2016/05/04 Javascript
微信小程序模板之分页滑动栏
2017/02/10 Javascript
浅谈angular2的http请求返回结果的subcribe注意事项
2017/03/01 Javascript
JS简单获取当前日期和农历日期的方法
2017/04/17 Javascript
js防刷新的倒计时代码 js倒计时代码
2017/09/06 Javascript
使用vue2.0创建的项目的步骤方法
2018/09/25 Javascript
Vue+Express实现登录注销功能的实例代码
2019/05/05 Javascript
如何通过Proxy实现JSBridge模块化封装
2020/10/22 Javascript
vue 使用rules对表单字段进行校验的步骤
2020/12/25 Vue.js
python数据结构树和二叉树简介
2014/04/29 Python
浅析python中的分片与截断序列
2016/08/09 Python
python实现解数独程序代码
2017/04/12 Python
浅析Python函数式编程
2018/10/06 Python
python爬虫简单的添加代理进行访问的实现代码
2019/04/04 Python
Gauss-Seidel迭代算法的Python实现详解
2019/06/29 Python
Django自定义模板过滤器和标签的实现方法
2019/08/21 Python
opencv 获取rtsp流媒体视频的实现方法
2019/08/23 Python
python实现大学人员管理系统
2019/10/25 Python
Parts Express:音频、视频和扬声器的第一来源
2017/04/25 全球购物
日本最佳原创设计品牌:Felissimo(芬理希梦)
2019/03/19 全球购物
捷克家具销售网站:SCONTO Nábytek
2020/01/02 全球购物
认识深刻的检讨书
2014/02/16 职场文书
征婚广告词
2014/03/17 职场文书
机关节能减排实施方案
2014/03/17 职场文书
艺术设计专业毕业生推荐信
2014/07/08 职场文书
甜品蛋糕店创业计划书
2014/09/21 职场文书
学校班子个人对照检查材料思想汇报
2014/09/27 职场文书
服务员岗位职责
2015/02/03 职场文书