iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python switch/case语句
  • 177
分享到

Python switch/case语句

语句Pythonswitch 2023-01-31 05:01:06 177人浏览 薄情痞子

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

摘要

与Java、C\c++等语言不同,python中是不提供switch/case语句的,这一点让我感觉到很奇怪。我们可以通过如下几种方法来实现switch/case语句。 使用if…elif…elif…else 实现switch/c

与Java、C\c++等语言不同,python中是不提供switch/case语句的,这一点让我感觉到很奇怪。我们可以通过如下几种方法来实现switch/case语句。

使用if…elif…elif…else 实现switch/case

可以使用if…elif…elif..else序列来代替switch/case语句,这是大家最容易想到的办法。但是随着分支的增多和修改的频繁,这种代替方式并不很好调试和维护。

使用字典 实现switch/case

可以使用字典实现switch/case这种方式易维护,同时也能够减少代码量。如下是使用字典模拟的switch/case实现:


def num_to_string(num):
    numbers = {
        0 : "zero",
        1 : "one",
        2 : "two",
        3 : "three"
    }

    return numbers.get(num, None)

if __name__ == "__main__":
    print num_to_string(2)
    print num_to_string(5)

执行结果如下:

two
None

Python字典中还可以包括函数或Lambda表达式,代码如下:

def success(msg):
    print msg

def debug(msg):
    print msg

def error(msg):
    print msg

def warning(msg):
    print msg

def other(msg):
    print msg

def notify_result(num, msg):
    numbers = {
        0 : success,
        1 : debug,
        2 : warning,
        3 : error
    }

    method = numbers.get(num, other)
    if method:
        method(msg)

if __name__ == "__main__":
    notify_result(0, "success")
    notify_result(1, "debug")
    notify_result(2, "warning")
    notify_result(3, "error")
    notify_result(4, "other")

执行结果如下:

success
debug
warning
error
other

通过如上示例可以证明能够通过Python字典来完全实现switch/case语句,而且足够灵活。尤其在运行时可以很方便的在字典中添加或删除一个switch/case选项。

在类中可使用调度方法实现switch/case

如果在一个类中,不确定要使用哪种方法,可以用一个调度方法在运行的时候来确定。代码如下:

class switch_case(object):

    def case_to_function(self, case):
        fun_name = "case_fun_" + str(case)
        method = getattr(self, fun_name, self.case_fun_other)
        return method

    def case_fun_1(self, msg):
        print msg

    def case_fun_2(self, msg):
        print msg

    def case_fun_other(self, msg):
        print msg


if __name__ == "__main__":
    cls = switch_case()
    cls.case_to_function(1)("case_fun_1")
    cls.case_to_function(2)("case_fun_2")
    cls.case_to_function(3)("case_fun_other")

执行结果如下:

case_fun_1
case_fun_2
case_fun_other

总结

就个人来说,使用字典来实现switch/case是最为灵活的,但是理解上也有一定的难度。

--结束END--

本文标题: Python switch/case语句

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

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

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • Python switch/case语句
    与Java、C\C++等语言不同,Python中是不提供switch/case语句的,这一点让我感觉到很奇怪。我们可以通过如下几种方法来实现switch/case语句。 使用if…elif…elif…else 实现switch/c...
    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如何实现switch/case语句
    这篇文章主要介绍了Python如何实现switch/case语句,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。使用if…elif…elif…else 实现switch/cas...
    99+
    2023-06-20
  • Java switch case语句详解
    if…else 语句可以用来描述一个“二岔路口”,我们只能选择其中一条路来继续走,然而生活中经常会碰到“多岔路口”的情况。switch 语句提供了 if 语句的一个变通形式,可以从多个语句块中选择其中的一个执行。 s...
    99+
    2023-09-01
    java 开发语言 Powered by 金山文档
  • c语言switch case语句怎么使用
    switch case语句是C语言中的一种流程控制语句,它用于根据不同的条件执行不同的操作。以下是switch case语句的基本语...
    99+
    2023-09-05
    c语言
  • java中的switch case语句的用法
    本篇内容主要讲解“java中的switch case语句的用法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java中的switch case语句的用法”吧!s...
    99+
    2022-10-19
  • C++中如何使用switch-case语句
    今天就跟大家聊聊有关C++中如何使用switch-case语句,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。if语句处理两个分支,处理多个分支时需使用if-else-if结构,但如果...
    99+
    2023-06-17
  • 如何在Python中实现真正的switch-case语句
    这篇文章给大家分享的是有关如何在Python中实现真正的switch-case语句的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在 Python 中实现真正的 switch-case 语句。这是使用字典来模仿 s...
    99+
    2023-06-27
  • Java 如何在switch case语句中声明变量
    目录在switch case语句中声明变量第一种情况常见的场景为第二种情况常见的场景为Java switch-case语句用法及例题原理归原理,下面是一个例题在switch case...
    99+
    2022-11-12
  • C语言switch case语句的执行流程是什么
    C语言的switch case语句的执行流程如下:1. 首先,计算switch语句中的表达式的值。2. 根据表达式的值,程序将跳转到...
    99+
    2023-09-20
    C语言
  • Python 中的switch-case
    Python中是没有switch-case语句的 —— 因为完全可以用if else模拟?根据python哲学,于是switch-case就没有了。 可以用字典和lambda模拟一个简单的switch-case。个人觉得这个方法有趣程度大于...
    99+
    2023-01-31
    Python switch case
  • python技巧 switch case
    不同于C语言和SHELL,python中没有switch case语句,关于为什么没有,官方的解释是这样的使用Python模拟实现的方法:   def switch_if(fun, x, y):    if fun == 'add':  ...
    99+
    2023-01-30
    技巧 python case
  • python实现switch语句
    Switch语句用于编写多分枝结构的程序,类似与if…elif…else语句。Switch语句表达的分支结构比if…elif…else语句表达的更清晰,代码的可读性更高。但是python并没有提供switch语句python通过定义字典,调...
    99+
    2023-01-31
    语句 python switch
  • switch语句
    Switch语句是一种在编程中常用的控制结构,允许程序根据不同的条件值来执行不同的代码块,可以代替多个if-else语句,提高代码的可读性和可维护性。虽然它有一些限制,但在适当的情况下,使用Switch语句可以使程序更加简洁和高效。Swit...
    99+
    2023-08-14
  • 为什么switch case语句在java中需要加入break
    本篇文章为大家展示了为什么switch case语句在java中需要加入break,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。java 中使用switch case语句需要加入break 做了具体...
    99+
    2023-05-31
    java switch case
  • Python中的Switch Case语法时是怎样的
    本篇文章给大家分享的是有关Python中的Switch Case语法时是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Python3.1...
    99+
    2022-10-19
  • 如何用c++表驱动替换if/else和switch/case语句
    目录C++的表驱动法 一、常用示例 二、表驱动法三、C++实现注意 四、实用案例C++的表驱动法 目的:使用表驱动法,替换复杂的if/else和switch/ca...
    99+
    2022-11-12
  • Mysql的switch语句
    select case status when 1 then ‘成功‘ when 2 then ‘失败‘ else ‘其他‘ end from user 1,case后面紧跟要被作为判断的字段 2,when后面跟判断条件 3,t...
    99+
    2019-09-20
    Mysql的switch语句 数据库入门 数据库基础教程 数据库 mysql
  • Python为什么不支持switch语句
    一、简洁性和可读性 Python的设计哲学之一是代码的简洁性和可读性。引入”switch”语句可能会增加语言的复杂性,并且可以用其他方式更清晰地表达相同的逻辑。Python鼓励使用”if-elif-else”语句来处理多个条件情况,这种方式...
    99+
    2023-10-29
    不支持 语句 Python
  • 如何在Python中实现switch语句?
    Python是一种功能强大的高级编程语言,提供了各种语法和面向对象的编程方式。然而,尽管Python提供了一些控制流语句,例如if和for语句,但并不支持switch语句。在本文中,我们将探讨如何在P...
    99+
    2023-09-01
    python 数学建模 开发语言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作