返回顶部
首页 > 资讯 > 后端开发 > Python >python之switch的实现
  • 738
分享到

python之switch的实现

pythonswitch 2023-01-31 03:01:28 738人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

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

防伪码:忘情公子著


  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多分支语句的判断过程,从而大大提高程序执行效率。

--结束END--

本文标题: python之switch的实现

本文链接: https://lsjlt.com/news/187418.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python之switch的实现
    防伪码:忘情公子著  switch是一种语法结构,在大多数的编程语言当中,都提供了switch语法结构。  switch语句的作用与优点:    switch语句用于编写多分支结构的程序,类似于if... elif... else(if多分...
    99+
    2023-01-31
    python switch
  • python实现switch语句
    Switch语句用于编写多分枝结构的程序,类似与if…elif…else语句。Switch语句表达的分支结构比if…elif…else语句表达的更清晰,代码的可读性更高。但是python并没有提供switch语句python通过定义字典,调...
    99+
    2023-01-31
    语句 python switch
  • Python实现switch/case语句
    目录使用if…elif…elif…else 实现switch/case使用字典 实现switch/case在类中可使用调度方法实现switch/case总结使用if…elif…elif…else 实现switch/c...
    99+
    2022-06-02
    Python switch语句 case语句
  • Python 使用dict实现switch的操作
    Python3还是没有switch,可以利用if-else来实现,但是非常不方便。使用dict来实现会比较简洁优雅。 # -*- coding: utf-8 -*- """ Py...
    99+
    2024-04-02
  • Python如何实现switch/case语句
    这篇文章主要介绍了Python如何实现switch/case语句,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。使用if…elif…elif…else 实现switch/cas...
    99+
    2023-06-20
  • python中Switch/Case实现的示例代码
    学习Python过程中,发现没有switch-case,过去写C习惯用Switch/Case语句,官方文档说通过if-elif实现。所以不妨自己来实现Switch/Case功能。 使用if…elif…el...
    99+
    2022-06-04
    示例 代码 python
  • 如何在Python中实现switch语句?
    Python是一种功能强大的高级编程语言,提供了各种语法和面向对象的编程方式。然而,尽管Python提供了一些控制流语句,例如if和for语句,但并不支持switch语句。在本文中,我们将探讨如何在P...
    99+
    2023-09-01
    python 数学建模 开发语言
  • 如何在Python中实现真正的switch-case语句
    这篇文章给大家分享的是有关如何在Python中实现真正的switch-case语句的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在 Python 中实现真正的 switch-case 语句。这是使用字典来模仿 s...
    99+
    2023-06-27
  • Python 中的switch-case
    Python中是没有switch-case语句的 —— 因为完全可以用if else模拟?根据python哲学,于是switch-case就没有了。 可以用字典和lambda模拟一个简单的switch-case。个人觉得这个方法有趣程度大于...
    99+
    2023-01-31
    Python switch case
  • c语言switch反汇编的实现
    目录一、switch语句1、在正向编码时,switch语句可以看做是if语句的简写2、break在switch语句的妙用二、switch语句的反汇编1、当switch存在3个分支时2...
    99+
    2024-04-02
  • python如何利用字典与函数实现switch case功能
    python如何利用字典与函数实现switch case功能,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 Python不像C/C++,J...
    99+
    2024-04-02
  • Android Switch自定义实现IOS效果
    先看下效果图 自定义View public class Seniorswitch extends Switch { priva...
    99+
    2022-06-06
    switch IOS Android
  • vue.js实现开关(switch)组件实例代码
    最近开发组件的时候,自定义开发了开关(switch)组件,现将代码整理如下,方便日后复用。 toggle-switch.vue   <template> <l...
    99+
    2024-04-02
  • Python之ascii转中文的实现
    看代码吧~ name = r"\u6697\u88d4\u5251\u9b54" print(name.encode('ascii').decode('unicode_escape')) 或 print(n...
    99+
    2022-06-02
    Python ascii转中文
  • python之基数排序的实现
    算法思想         插...
    99+
    2024-04-02
  • Python之PyQt6对话框的实现
    目录使用QDialog显示通用消息框使用QMessageBox显示不同的对话框输入对话框字体对话框颜色对话框文件对话框使用静态方法获取文件路径实例化对话框获取文件路径对话框是界面编程...
    99+
    2023-01-16
    PyQt6对话框
  • Python实战之ATM取款机的实现
    目录一、项目视图分析二、文件结构分析三、完整代码1.start.py2.conf3.core4.interface5.db6.lib7.readme一、项目视图分析 通过上图,我们...
    99+
    2024-04-02
  • c语言怎么实现switch反汇编
    这篇文章主要介绍“c语言怎么实现switch反汇编”,在日常操作中,相信很多人在c语言怎么实现switch反汇编问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”c语言怎么实现switch反汇编”的疑惑有所帮助!...
    99+
    2023-06-08
  • Python+Pygame实现之见缝插针游戏的实现
    目录前言​一、运行环境二、代码展示三、效果展示​总结前言 姥姥说: 炎炎夏日热浪来袭。 有点让人无法忍受。。。 一动就是一身汗。。。。。 想玩点小游戏都没地方玩了。。。 《见缝插针...
    99+
    2024-04-02
  • Python+Pygame实现之走四棋儿游戏的实现
    目录导语一、游戏解说二、游戏规则三、环境安装四、代码展示五、效果展示导语 大家以前应该都听说过一个游戏:叫做走四棋儿 这款游戏出来到现在时间挺长了,小时候的家乡农村条件有限,附近也没...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作