如何在Python的match/case新结构中正确使用not条件
错误原因
Python 的 match/case 语法中,case 后直接跟的是匹配模式,不支持直接写 not 10 这类裸的否定逻辑表达式,你需要通过模式守护条件(也就是在模式后附加 if 判断)实现否定匹配逻辑。
正确写法
写法1:捕获值后做不等于判断
如果你需要在匹配分支中使用匹配到的值,可以用变量捕获值后加判断:
a = 5 match a: case x if x != 10: print(a)
写法2:用通配符匹配加全局判断
如果不需要用到匹配值,可以直接用通配符 _ 配合判断实现:
a = 5 match a: case _ if a != 10: print(a)
写法3:分支兜底实现
如果逻辑上只需要区分「等于10」和「不等于10」两种情况,也可以直接把等于10的分支放在前面,用通配符兜底实现否定逻辑,不需要额外加判断:
a = 5 match a: case 10: print("a的值为10") case _: print(a)
内容的提问来源于stack exchange,提问作者TheAngriestCrusader
相关产品推荐
相关产品推荐

