约 1729 字

约 9 分钟

#Python 的模式匹配

模式匹配(Pattern Matching)是一种检查变量是否符合某种模式的语法结构,通过 match 和 case 进行控制

# 按照先后顺序检查模式,只执行第一个匹配的模式下的代码块。
match 变量:
    case 模式1:
        代码块1
    case 模式2:
        代码块2
    ...
    case 模式n:
        代码块n

是

否

是

否

是

否

开始

匹配模式1?

代码块1

结束

匹配模式2?

代码块2

匹配模式n?

代码块 n

代码块 n+1

#精确匹配

模式为精确值,变量与模式相等时匹配。例如:

value:int = int(input("好评请按1,差评请按2,投诉请按3:"))
match value:
    case 1:
        print("好评")
    case 2:
        print("差评")
    case 3:
        print("投诉")
    case _:                 # 无匹配模式匹配
        print("无效输入")

>>> Establishing WebAssembly Runtime.

>>> Standby.

Powered by Shift.

#类型匹配

模式为类型,变量符合该类型时匹配。例如:

value:str = "233"
match value:
    case int(x):                        # 匹配成功时,value 会赋值给 x
        print("类型为整数,值为", x)
    case str(x):
        print("类型为字符串,值为", x)

>>> Establishing WebAssembly Runtime.

>>> Standby.

Powered by Shift.

#表达式匹配

模式为表达式,变量满足表达式时匹配。例如:

age:int = int(input("请输入你的年龄:"))
match age:
    case x if x < 3:        # 匹配成功时,age 会赋值给 x
        print(x, "岁婴儿")
    case x if x < 18:
        print(x, "岁少年")
    case x if x < 44:
        print(x, "岁青年")
    case x if x < 59:
        print(x, "岁中年")
    case x:                 # 无匹配模式匹配
        print(x, "岁老年")

>>> Establishing WebAssembly Runtime.

>>> Standby.

Powered by Shift.

更新: 2025/6/9

作者: PlanC

创建: 2025/4/10