当前位置:首页 > 科技  > 软件

Python 的 match 有点好用,推荐试试

来源: 责编: 时间:2023-12-18 17:36:57 373观看
导读Match 和 switch 都是控制流语句,但它们在语法和用法上有一些区别。(1) 语法:switch 语句通常在其他编程语言中使用,如 C、C++、Java 等。它的语法通常是 switch(expression) { case value1: ... case value2: ... defau

Match 和 switch 都是控制流语句,但它们在语法和用法上有一些区别。MN128资讯网——每日最新资讯28at.com

MN128资讯网——每日最新资讯28at.com

(1) 语法:MN128资讯网——每日最新资讯28at.com

  • switch 语句通常在其他编程语言中使用,如 C、C++、Java 等。它的语法通常是 switch(expression) { case value1: ... case value2: ... default: ... }。
  • match 语句是 Python 3.10 引入的新特性,它的语法是 match subject: case pattern_1: ... case pattern_2: ... case _: ...。

(2) 匹配模式:MN128资讯网——每日最新资讯28at.com

switch 语句通常只能匹配整数或枚举类型,而 match 语句可以匹配更复杂的模式,包括字符串、列表、元组等。MN128资讯网——每日最新资讯28at.com

(3) 执行顺序:MN128资讯网——每日最新资讯28at.com

  • switch 语句通常会按照 case 的顺序执行,直到找到匹配的 case 为止。如果没有找到匹配的 case,那么就会执行 default 分支。
  • match 语句会按照 case 的顺序执行,直到找到匹配的 case 为止。如果没有找到匹配的 case,那么就会执行 _ 分支。

(4) 性能:MN128资讯网——每日最新资讯28at.com

  • switch 语句通常比 match 语句更快,因为它可以直接跳转到匹配的 case。
  • match 语句的性能通常比 switch 语句差,因为它需要逐个检查每个 case。

总的来说,match 和 switch 都是控制流语句,但它们在语法、匹配模式、执行顺序和性能等方面有一些区别。MN128资讯网——每日最新资讯28at.com

在 Python 3.10 中,引入了 match 语句作为 switch 语句的更强大版本。match 语句可以用于模式匹配,这是一种更灵活和可读性更高的方式来匹配值。MN128资讯网——每日最新资讯28at.com

match 语句的基本语法如下:MN128资讯网——每日最新资讯28at.com

pythonmatch subject:    case pattern_1:        # code to execute if subject matches pattern_1    case pattern_2:        # code to execute if subject matches pattern_2    ...    case _:        # code to execute if subject does not match any of the patterns

其中,subject 是要匹配的值,pattern_1 和 pattern_2 是匹配模式,_ 是一个特殊的模式,用于匹配任何值。MN128资讯网——每日最新资讯28at.com

例如,我们可以使用 match 语句来匹配一个整数的值:MN128资讯网——每日最新资讯28at.com

pythondef http_error(status):    match status:        case 400:            return "Bad request"        case 404:            return "Not found"        case 418:            return "I'm a teapot"        case _:            return "Something's wrong with the internet"

在这个例子中,match 语句会尝试匹配 status 的值,并执行相应的代码。如果 status 的值不匹配任何一个模式,那么就会执行 _ 模式对应的代码。MN128资讯网——每日最新资讯28at.com

match 语句也可以匹配更复杂的模式,例如,我们可以匹配一个元组:MN128资讯网——每日最新资讯28at.com

pythonmatch point:    case (0, 0):        print("Origin")    case (0, y):        print(f"Y={y}")    case (x, 0):        print(f"X={x}")    case (x, y):        print(f"X={x}, Y={y}")    case _:        raise ValueError("Not a point")

在这个例子中,match 语句会尝试匹配 point 的值,并执行相应的代码。如果 point 的值不匹配任何一个模式,那么就会引发 ValueError 异常。MN128资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-48740-0.htmlPython 的 match 有点好用,推荐试试

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: Finally中的代码一定会执行吗?

下一篇: 理解C++之类模板

标签:
  • 热门焦点
  • 影音体验是真的强 简单聊聊iQOO Pad

    大公司的好处就是产品线丰富,非常细分化的东西也能给你做出来,例如早先我们看到了新的vivo Pad2,之后我们又在iQOO Neo8 Pro的发布会上看到了iQOO的首款平板产品iQOO Pad。虽
  • 帅气纯真少年!日本最帅初中生选美冠军出炉

    日本第一帅哥初一生选美大赛冠军现已正式出炉,冠军是来自千叶县的宗田悠良。日本一直热衷于各种选美大赛,从“最美JK”起到“最美女星&r
  • Flowable工作流引擎的科普与实践

    一.引言当我们在日常工作和业务中需要进行各种审批流程时,可能会面临一系列技术和业务上的挑战。手动处理这些审批流程可能会导致开发成本的增加以及业务复杂度的上升。在这
  • 多线程开发带来的问题与解决方法

    使用多线程主要会带来以下几个问题:(一)线程安全问题  线程安全问题指的是在某一线程从开始访问到结束访问某一数据期间,该数据被其他的线程所修改,那么对于当前线程而言,该线程
  • 使用AIGC工具提升安全工作效率

    在日常工作中,安全人员可能会涉及各种各样的安全任务,包括但不限于:开发某些安全工具的插件,满足自己特定的安全需求;自定义github搜索工具,快速查找所需的安全资料、漏洞poc、exp
  • 中国家电海外掘金正当时|出海专题

    作者|吴南南编辑|胡展嘉运营|陈佳慧出品|零态LT(ID:LingTai_LT)2023年,出海市场战况空前,中国创业者在海外纷纷摩拳擦掌,以期能够把中国的商业模式、创业理念、战略打法输出海外,他们依
  • 腾讯VS网易,最卷游戏暑期档,谁能笑到最后?

    作者:无锈钵来源:财经无忌7月16日晚,上海1862时尚艺术中心。伴随着幻象的精准命中,硕大的荧幕之上,比分被定格在了14:12,被寄予厚望的EDG战队以绝对的优势战胜了BLG战队,拿下了总决
  • 支持aptX Lossless无损传输 iQOO TWS 1赛道版发布限时优惠价369元

    2023年7月4日,“无损音质,声动人心”iQOO TWS 1正式发布,支持aptX Lossless无损传输,限时优惠价369元。iQOO TWS 1耳机率先支持端到端aptX Lossless无
  • iQOO 11S屏幕细节公布:首发三星2K E6全感屏 安卓最好的直屏手机

    日前iQOO手机官方宣布,新一代电竞旗舰iQOO 11S将会在7月4日19:00正式与大家见面。随着发布时间的日益临近,官方关于该机的预热也更加密集,截至目前已
Top