我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python之switch的实现

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python之switch的实现

防伪码:忘情公子著


  switch是一种语法结构,在大多数的编程语言当中,都提供了switch语法结构。

  switch语句的作用与优点:

   switch语句用于编写多分支结构的程序,类似于if... elif... else(if多分支)语句

    switch语句表达的分支结构比if多分支语句表达的更清晰

    代码的可读性更高,执行效率也比if多分支语句要高

  python并没有提供switch语句,但是我们可以通过字典实现switch语句的功能。

    实现方法分为两步:

      1、定义一个字典

      2、调用字典的get()获取相应的表达式

  通过字典调用函数实现switch功能的方式如下:

{1:case1,2:case2}.get(x,lambda *args,**keys: [args,keys])()

  下面我们通过编写一个简单的四则运算程序来看看switch在python中到底是如何实现的,以及有何优点。

  通过if多分支来写传统的四则运算程序:

[root@localhost test]# cat cal.py 
#!/usr/bin/python
#coding:utf-8

from __future__ import division    #当除法结果有小数时保留小数

def plus(x,y):
    return x + y

def minus(x,y):
    return x - y

def times(x,y):
    return x * y

def divide(x,y):
    return x / y

def operator(x,o,y):
    if o == "+":
        print plus(x,y)
    elif o == "-":
        print minus(x,y)
    elif o == "*":
        print times(x,y)
    elif o == '/':
        print divide(x,y)
    else:
        pass

operator(2,'+',4)
[root@localhost test]# python cal.py 
6

  如上例所示,当我们要执行除法时,首先会先判断“+”、“-”、“*”三条语句,这样就会显得有点多余,降低了程序执行的效率。

  接下来我们通过switch语句来写一下这个简单的四则运算程序:

[root@localhost test]# cat scal.py 
#!/usr/bin/python
#coding:utf-8

from __future__ import division

plus = lambda x,y: x+y
minus = lambda x,y: x-y
times = lambda x,y: x*y
divide = lambda x,y: x/y

operator = {'+':plus,'-':minus,'*':times,'/':divide}

def f(x,o,y):
    return operator.get(o,lambda *args,**keys: [o,arg,key])(x,y)

print f(1,'+',2)
print f(4,'-',2)
print f(4,'*',2)
print f(3,'/',2)
print f(1,'%',2)
[root@localhost test]# python scal.py 
3
2
8
1.5
['%', (1, 2), {}]    #这里是由上面的lambda语句收集操作数、运算符和字典而得来的
                     #当运算符不是+-*/中任意一个时,则用o收集运算符存至列表中,不执行运算操作
                     #用*args收集操作数
                     #用**keys收集字典,这个示例中没有字典,所以收集到的结果是一个空字典

  如上例如示,我们将直接在字典中取到key(也就是运算符),然后进行运算,如此的话就少了传统if多分支语句的判断过程,从而大大提高程序执行效率。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python之switch的实现

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python之switch的实现

防伪码:忘情公子著  switch是一种语法结构,在大多数的编程语言当中,都提供了switch语法结构。  switch语句的作用与优点:    switch语句用于编写多分支结构的程序,类似于if... elif... else(if多分
2023-01-31

python实现switch语句

Switch语句用于编写多分枝结构的程序,类似与if…elif…else语句。Switch语句表达的分支结构比if…elif…else语句表达的更清晰,代码的可读性更高。但是python并没有提供switch语句python通过定义字典,调
2023-01-31

Python实现switch/case语句

目录使用if…elif…elif…else 实现switch/case使用字典 实现switch/case在类中可使用调度方法实现switch/case总结使用if…elif…elif…else 实现switch/case 可以使用if…e
2022-06-02

Python如何实现switch/case语句

这篇文章主要介绍了Python如何实现switch/case语句,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。使用if…elif…elif…else 实现switch/cas
2023-06-20

python中Switch/Case实现的示例代码

学习Python过程中,发现没有switch-case,过去写C习惯用Switch/Case语句,官方文档说通过if-elif实现。所以不妨自己来实现Switch/Case功能。使用if…elif…elif…else 实现switch/ca
2022-06-04

如何在Python中实现真正的switch-case语句

这篇文章给大家分享的是有关如何在Python中实现真正的switch-case语句的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在 Python 中实现真正的 switch-case 语句。这是使用字典来模仿 s
2023-06-27

Python中实现优雅的switch操作的方法小结

本文介绍了5种在Python中实现优雅switch操作的方法,包括使用字典、getattr()函数、元组、自定义枚举和functools.singledispatch()装饰器。每种方法都有其优缺点,选择最合适的方法取决于案件数量、类型和代码复杂性。本文还提供了方法选择指南,供读者参考。
Python中实现优雅的switch操作的方法小结
2024-04-02

Python 中的switch-case

Python中是没有switch-case语句的 —— 因为完全可以用if else模拟?根据python哲学,于是switch-case就没有了。可以用字典和lambda模拟一个简单的switch-case。个人觉得这个方法有趣程度大于实
2023-01-31

Android Switch自定义实现IOS效果

先看下效果图 自定义View public class Seniorswitch extends Switch {private boolean IF_EVENT_MOVE = false;/*** 监听滑动时
2022-06-06

Python之ascii转中文的实现

看代码吧~name = r"\u6697\u88d4\u5251\u9b54" print(name.encode('ascii').decode('unicode_escape'))或print(name.encode().decode(
2022-06-02

Python之PyQt6对话框的实现

这篇文章主要介绍了Python之PyQt6对话框的实现,文章内容详细,简单易懂,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
2023-01-16

c语言怎么实现switch反汇编

这篇文章主要介绍“c语言怎么实现switch反汇编”,在日常操作中,相信很多人在c语言怎么实现switch反汇编问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”c语言怎么实现switch反汇编”的疑惑有所帮助!
2023-06-08

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录