You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 10:27:00