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 获取本机ip地址的两个方法
Feb 25 Python
Python实现批量读取图片并存入mongodb数据库的方法示例
Apr 02 Python
Python3多线程基础知识点
Feb 19 Python
Python/Django后端使用PIL Image生成头像缩略图
Apr 30 Python
Djang的model创建的字段和参数详解
Jul 27 Python
python 标准差计算的实现(std)
Jul 29 Python
python定位xpath 节点位置的方法
Aug 27 Python
Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
Oct 17 Python
Django后端分离 使用element-ui文件上传方式
Jul 12 Python
用Python自动清理电脑内重复文件,只要10行代码(自动脚本)
Jan 09 Python
python3 hdf5文件 遍历代码
May 19 Python
python 闭包函数详细介绍
Apr 19 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
PHP 数组和字符串互相转换实现方法
2013/03/26 PHP
浅谈PHP链表数据结构(单链表)
2016/06/08 PHP
JavaScript constructor和instanceof,JSOO中的一对欢喜冤家
2009/05/25 Javascript
jquery实现div拖拽宽度示例代码
2013/07/31 Javascript
node.js中的url.format方法使用说明
2014/12/10 Javascript
jQuery插件slick实现响应式移动端幻灯片图片切换特效
2015/04/12 Javascript
javascript实现图片自动和可控的轮播切换特效
2015/04/13 Javascript
Bootstrap carousel轮转图的使用实例详解
2016/05/17 Javascript
EasyUI框架 使用Ajax提交注册信息的实现代码
2017/09/27 Javascript
webstorm和.vue中es6语法报错的解决方法
2018/05/08 Javascript
JavaScript实现一个简易的计算器实例代码
2018/05/10 Javascript
Babel 入门教程学习笔记
2018/06/13 Javascript
解决axios发送post请求返回400状态码的问题
2018/08/11 Javascript
详解Vue中使用插槽(slot)、聚类插槽
2019/04/12 Javascript
基于JS实现简单滑块拼图游戏
2019/10/12 Javascript
原生JS实现贪吃蛇小游戏
2020/03/09 Javascript
js实现超级玛丽小游戏
2020/03/18 Javascript
浅谈vue使用axios的回调函数中this不指向vue实例,为undefined
2020/09/21 Javascript
[54:10]完美世界DOTA2联赛PWL S2 Magma vs FTD 第二场 11.29
2020/12/03 DOTA
Python 返回汉字的汉语拼音
2009/02/27 Python
python抓取豆瓣图片并自动保存示例学习
2014/01/10 Python
python中日志logging模块的性能及多进程详解
2017/07/18 Python
Python使用统计函数绘制简单图形实例代码
2019/05/15 Python
python字典嵌套字典的情况下找到某个key的value详解
2019/07/10 Python
Pandas DataFrame中的tuple元素遍历的实现
2019/10/23 Python
浅谈tensorflow中张量的提取值和赋值
2020/01/19 Python
佳能英国官方网站:Canon UK
2017/08/08 全球购物
意大利灯具购物网站:Lampade.it
2018/10/18 全球购物
澳大利亚礼品卡商店:Gift Card Store
2019/06/24 全球购物
护理专业个人求职简历的自我评价
2013/10/13 职场文书
财务部副经理岗位职责
2014/03/14 职场文书
园林设计专业毕业生求职信
2014/03/23 职场文书
我爱我家教学反思
2014/05/01 职场文书
有限公司股东合作协议书
2014/10/29 职场文书
创业方案:赚钱的烧烤店该怎样做?
2019/07/05 职场文书
基于Python和openCV实现图像的全景拼接详细步骤
2021/10/05 Python