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 基础学习教程
Feb 08 Python
详解Python中的循环语句的用法
Apr 09 Python
python使用PyGame播放Midi和Mp3文件的方法
Apr 24 Python
Python 中 Meta Classes详解
Feb 13 Python
python+django+sql学生信息管理后台开发
Jan 11 Python
django 发送手机验证码的示例代码
Apr 25 Python
在dataframe两列日期相减并且得到具体的月数实例
Jul 03 Python
python3的print()函数的用法图文讲解
Jul 16 Python
python异常处理try except过程解析
Feb 03 Python
完美解决Django2.0中models下的ForeignKey()问题
May 19 Python
如何利用Python 进行边缘检测
Oct 14 Python
python爬虫破解字体加密案例详解
Mar 02 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 表单提交给自己
2008/07/24 PHP
php守护进程 加linux命令nohup实现任务每秒执行一次
2011/07/04 PHP
PHP--用万网的接口实现域名查询功能
2012/12/13 PHP
php对包含html标签的字符串进行截取的函数分享
2014/06/19 PHP
php中opendir函数用法实例
2014/11/15 PHP
php获取POST数据的三种方法实例详解
2016/12/20 PHP
php base64 编码与解码实例代码
2017/03/21 PHP
Laravel 队列使用的实现
2019/01/08 PHP
CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析
2019/02/28 PHP
PHP+redis实现微博的推模型案例分析
2019/07/10 PHP
中文路径导致unitpngfix.js不正常的解决方法
2013/06/26 Javascript
javascript查询字符串参数的方法
2015/01/28 Javascript
js+css实现有立体感的按钮式文字竖排菜单效果
2015/09/01 Javascript
AngularJS 2.0新特性有哪些
2016/02/18 Javascript
使用Bootstrap Tabs选项卡Ajax加载数据实现
2016/12/23 Javascript
JS求解三元一次方程组值的方法
2017/01/03 Javascript
JavaScript实现省市县三级级联特效
2017/05/16 Javascript
详解express与koa中间件模式对比
2017/08/07 Javascript
Vue press 支持图片放大功能的实例代码
2018/11/09 Javascript
layui 地区三级联动 form select 渲染的实例
2019/09/27 Javascript
[01:36:17]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第一场 1月31日
2021/03/11 DOTA
详解Python最长公共子串和最长公共子序列的实现
2018/07/07 Python
python去掉 unicode 字符串前面的u方法
2018/10/21 Python
python实现关闭第三方窗口的方法
2019/06/28 Python
使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
2020/03/16 Python
详解用Pytest+Allure生成漂亮的HTML图形化测试报告
2020/03/31 Python
Python3实现飞机大战游戏
2020/04/24 Python
详解CSS3 弹性布局快速入门
2019/06/06 HTML / CSS
巴西24小时在线药房:Droga Raia
2020/05/12 全球购物
C语言怎样定义和声明全局变量和函数最好
2013/11/26 面试题
大学生职业生涯规划书的基本内容
2014/01/06 职场文书
年终奖发放方案
2014/06/02 职场文书
小学国庆节活动方案策划书
2014/09/16 职场文书
群众路线班子对照检查材料
2014/09/25 职场文书
个人创业事迹材料
2014/12/30 职场文书
你需要掌握的20个Python常用技巧
2022/02/28 Python