1. 主页
  2. 文档
  3. Python教程
  4. Python入门
  5. match…case 语句

match…case 语句

Python 3.10 引入了 match...case 语句,这是一种模式匹配语法,用于简洁地处理多个条件的情况。match...case 语句可以代替传统的 if...elif...else 结构,特别适用于处理多个可能的匹配情况。


match...case 语法:

match...case 语句由 match 关键字引导,后跟要匹配的对象,然后是一个或多个 case 分支,每个分支指定一个模式,匹配成功时执行相应的代码块。

match expression:
    case pattern1:
        # 如果表达式匹配 pattern1,则执行这里的代码
    case pattern2:
        # 如果表达式匹配 pattern2,则执行这里的代码
    case _:
        # 如果以上模式都不匹配,则执行这里的代码


示例代码:

# 使用 match...case 处理不同类型的值
def check_type(value):
    match value:
        case int:
            print("这是一个整数")
        case float:
            print("这是一个浮点数")
        case str:
            print("这是一个字符串")
        case _:
            print("未知类型")

check_type(10)      # 输出: 这是一个整数
check_type(3.14)    # 输出: 这是一个浮点数
check_type("hello"# 输出: 这是一个字符串
check_type(True)    # 输出: 未知类型

在上述示例中,check_type 函数根据传入的值的类型,使用 match...case 语句进行匹配,并执行相应的代码块。如果没有匹配的情况,则执行 case _: 分支中的代码。


模式匹配:

match...case 语句中,每个 case 分支可以包含一个模式,用于指定匹配的条件。模式可以是字面值、变量名、tuplelist 等,还可以包含类型匹配、值绑定、可选值匹配等特性。


匹配操作符 |

可以使用 | 操作符将多个模式组合到一起,表示匹配任意一个模式。

match value:
    case 1 | 2 | 3:
        # 如果 value 的值为 1、2 或 3 中的任意一个,则执行这里的代码


match...case 的优势:

  • 简洁明了:match...case 语法更加简洁,可以用更少的代码处理多个条件。
  • 类型安全:模式匹配可以提供类型安全,减少由于类型错误而引起的 bug。
  • 可读性高:匹配语法清晰直观,更易于理解和维护。


match...case 语句是 Python 中一种强大的模式匹配语法,使得编写复杂的条件逻辑更加简洁和可读。通过结合模式匹配的特性,可以轻松处理多种不同情况下的代码逻辑。

我们要如何帮助您?