Python 使用dict实现switch的操作

 更新时间:2021年04月07日 14:46:39   作者:KeeJee  
这篇文章主要介绍了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)

运行效果如下所示:

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

相关文章

  • 学python需要去培训机构吗

    学python需要去培训机构吗

    在本篇文章里小编给大家整理的是关于学python是否需要去培训机构的相关内容,有需要的朋友们可以阅读下。
    2020-07-07
  • python实现数据导出到excel的示例--普通格式

    python实现数据导出到excel的示例--普通格式

    今天小编就为大家分享一篇python实现数据导出到excel的示例--普通格式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • 使用Python制作一个数据预处理小工具(多种操作一键完成)

    使用Python制作一个数据预处理小工具(多种操作一键完成)

    这篇文章主要介绍了使用Python制作一个数据预处理小工具(多种操作一键完成),本文通过图文实例相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • Python中的文件输入输出问题

    Python中的文件输入输出问题

    这篇文章主要介绍了Python中的文件输入输出问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • 如何完美的建立一个python项目

    如何完美的建立一个python项目

    在本篇文章里小编给大家整理了关于如何完美的建立一个python项目的相关知识点内容,需要的朋友们可以学习下。
    2020-10-10
  • 基于Python实现的扫雷游戏实例代码

    基于Python实现的扫雷游戏实例代码

    这篇文章主要介绍了基于Python实现的扫雷游戏实例代码,对于Python的学习以及Python游戏开发都有一定的借鉴价值,需要的朋友可以参考下
    2014-08-08
  • Python趣味挑战之给幼儿园弟弟生成1000道算术题

    Python趣味挑战之给幼儿园弟弟生成1000道算术题

    为了让弟弟以后好好学习,我特地用Python给他生成了1000道算术题让他做,他以后一定会感谢我的!文中有非常详细的代码示例,需要的朋友可以参考下
    2021-05-05
  • Python 列表(List)的底层实现原理分析

    Python 列表(List)的底层实现原理分析

    这篇文章主要介绍了Python 列表(List)的底层实现原理分析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Django模板标签中url使用详解(url跳转到指定页面)

    Django模板标签中url使用详解(url跳转到指定页面)

    这篇文章主要介绍了Django模板标签中url使用详解(url跳转到指定页面),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • python 包之 threading 多线程

    python 包之 threading 多线程

    这篇文章主要介绍了python 包之 threading 多线程,文章通过实例化threading.Thread类创建线程,下文相关资料介绍,需要的朋友可以参考一下
    2022-04-04

最新评论