python3.10 match case 怎么匹配多个值同时满足?

python3.10 match case 怎么匹配多个值同时满足?

var1 = 1

var2 = 2

match True:

case var1==1 and var2==2: print('同时满足多个值')

怎么让上面代码正确?
python3.10 match case 怎么匹配多个值同时满足?


回答:

可以这么写:

var1 = 1

var2 = 2

match (var1, var2):

case (1, 2):

print("同时满足多个值")

详见 4.6. match 语句 — 4. 其他流程控制工具 — Python 3.10.9 文档 中的第三个代码块:

模式的形式类似解包赋值,并可被用于绑定变量:

# point is an (x, y) tuple

match 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")

请仔细研究此代码! 第一个模式有两个字面值,可以看作是上面所示字面值模式的扩展。但接下来的两个模式结合了一个字面值和一个变量,而变量 绑定 了一个来自目标的值(point)。第四个模式捕获了两个值,这使得它在概念上类似于解包赋值 (x, y) = point。

以上是 python3.10 match case 怎么匹配多个值同时满足? 的全部内容, 来源链接: utcz.com/p/938729.html

回到顶部