如何编写两组条件均不满足时触发警告的条件判断逻辑?
正确的条件判断写法
你的代码逻辑错误是因为Python的逻辑运算符优先级问题:not的优先级比and和or更高,原代码被解析成了(not (a == 1)) and b == 1 or a == 2 and b == 2,完全不符合你“两组条件都不满足才触发警告”的需求。
推荐两种正确的写法:
写法一:明确分组后取反
用括号把两个允许的条件组括起来,整体取反,逻辑清晰直观:
if not ((a == 1 and b == 1) or (a == 2 and b == 2)): # 这里写触发警告的代码
写法二:元组匹配(更简洁)
把a和b组成元组,判断它不在允许的元组集合里,代码更简洁易读:
if (a, b) not in {(1, 1), (2, 2)}: # 这里写触发警告的代码
这两种写法都能实现需求:只要(a=1且b=1)或者(a=2且b=2)任意一组满足,就不触发警告;只有两组都不满足时,才执行警告逻辑。
内容的提问来源于stack exchange,提问作者JJH
相关产品推荐
相关产品推荐

