Python基础知识 -【模式匹配:match...case 语句】
- UID
- 2
- 积分
- 2874604
- 威望
- 1387331 布
- 龙e币
- 1487273 刀
- 在线时间
- 13155 小时
- 注册时间
- 2009-12-3
- 最后登录
- 2024-11-24
|
Python基础知识 -【模式匹配:match...case 语句】
match...case 提供了一种更强大的模式匹配方法。
模式匹配是一种在编程中处理数据结构的方式,可以使代码更简洁、易读。
match...case 是 Python 3.10 版本引入的新语法。
match...case 语法结构如下:- match expression:
- case pattern1:
- # 处理pattern1的逻辑
- case pattern2 if condition:
- # 处理pattern2并且满足condition的逻辑
- case _:
- # 处理其他情况的逻辑
复制代码 参数说明:
match语句后跟一个表达式,然后使用case语句来定义不同的模式。
case后跟一个模式,可以是具体值、变量、通配符等。
可以使用if关键字在case中添加条件。
_通常用作通配符,匹配任何值。
实例
1. 简单的值匹配
实例- def match_example(value):
- match value:
- case 1:
- print("匹配到值为1")
- case 2:
- print("匹配到值为2")
- case _:
- print("匹配到其他值")
- match_example(1) # 输出: 匹配到值为1
- match_example(2) # 输出: 匹配到值为2
- match_example(3) # 输出: 匹配到其他值
复制代码 以上代码中,match 语句用于匹配 value 的不同情况,每个 case 语句表示一种可能的匹配情况,_ 通配符表示其他情况。
输出结果为:2. 使用变量
实例- def match_example(item):
- match item:
- case (x, y) if x == y:
- print(f"匹配到相等的元组: {item}")
- case (x, y):
- print(f"匹配到元组: {item}")
- case _:
- print("匹配到其他情况")
- match_example((1, 1)) # 输出: 匹配到相等的元组: (1, 1)
- match_example((1, 2)) # 输出: 匹配到元组: (1, 2)
- match_example("other") # 输出: 匹配到其他情况
复制代码 输出结果为:- 匹配到相等的元组: (1, 1)
- 匹配到元组: (1, 2)
- 匹配到其他情况
复制代码 3. 类型匹配
实例- class Circle:
- def __init__(self, radius):
- self.radius = radius
- class Rectangle:
- def __init__(self, width, height):
- self.width = width
- self.height = height
- def match_shape(shape):
- match shape:
- case Circle(radius=1):
- print("匹配到半径为1的圆")
- case Rectangle(width=1, height=2):
- print("匹配到宽度为1,高度为2的矩形")
- case _:
- print("匹配到其他形状")
- match_shape(Circle(radius=1)) # 输出: 匹配到半径为1的圆
- match_shape(Rectangle(width=1, height=2)) # 输出: 匹配到宽度为1,高度为2的矩形
- match_shape("other") # 输出: 匹配到其他形状
复制代码 输出结果为:- 匹配到半径为1的圆
- 匹配到宽度为1,高度为2的矩形
- 匹配到其他形状
复制代码 |
论坛官方微信、群(期货热点、量化探讨、开户与绑定实盘)
|
|
|
|
|
|