控制语句

match

预计阅读时间1 分 210 views

1 前言

在 Python 3.10 版本中引入了 match 表达式,它是一种模式匹配的功能,用于替代 if-elif-else 语句,使代码更加简洁、易读。

match 表达式是一种模式匹配的语法,用于根据变量的不同值或模式进行匹配,并执行相应的代码块。

它的语法如下

match expression:
    case pattern_1:
        # 执行对应的代码块
    case pattern_2:
        # 执行对应的代码块
    case pattern_3 if condition:
        # 执行对应的代码块
    case _:
        # 通配符,处理其他情况
  • match 后面跟着待匹配的表达式。
  • case 后面跟着模式和可选的条件(如果需要),当表达式与模式匹配时,执行相应的代码块。
  • _ 是通配符,用于匹配除了之前列出的模式之外的其他情况。

我们直接通过示例来看它的使用。

2 使用场景

2.1 匹配单个值

假设我们现在要根据不同给的数字输出不同的值。

if __name__ == '__main__':
    num = 3
    match num:
        case 1:
            print("这是数字1")
        case 2:
            print("这是数字2")
        case 3:
            print("这是数字3")
        case 4:
            print("这是数字4")
        case _:
            print("其他数字")

在上面这个示例中,num 的值是 3,因此 match 表达式会逐一匹配每个 case,并执行第一个匹配成功的分支。在这里,num 的值是 3,因此执行的是 case 3 分支,输出 “这是数字3″。

2.2 使用模式匹配

if __name__ == '__main__':
    point = (5, 10)
    match point:
        case (0, 0):
            print("坐标原点")
        case (x, 0):
            print(f"在 x 轴上,x 坐标为 {x}")
        case (0, y):
            print(f"在 y 轴上,y 坐标为 {y}")
        case (x, y):
            print(f"在坐标 ({x}, {y})")

对于 (5, 10) 这样的点坐标,它将匹配 (x, y) 的情况,最后一个 case 下的代码块就会被执行,输出 “在坐标 (5, 10)”。

注意事项:

  • match 表达式是在 Python 3.10 版本中引入的新特性,使用前确保你的 Python 版本符合要求。
  • match 表达式的语法和使用方法有所不同,需要适应新的语法规则。

match提供了一种更加简洁、直观的模式匹配方式,使得代码可以更清晰地根据不同情况进行匹配和执行。

它还有其它的匹配模式,如果小伙伴感兴趣可以去官网再看看。

Leave a Comment

分享此文档

match

或复制链接

内容