使用python编写布尔表达式

Writing a Boolean Expression using Python

本问题已经有最佳答案,请猛点这里访问。

我试图用python编写一个布尔表达式,但似乎python只能用位操作来执行xor表达式。

在没有XOR操作符的情况下,用Python编写这个表达式最好的方法是什么?

1
(A ^ B ^ C ^ D) U ((B U C U D)' XOR A)

编辑:

我尝试过:

1
if (A and B and C and D) or ((A and not (B or C or D)) or (not A and (B and C and D))):

我想简化一下。


只需使用按位^运算符。当^一起使用时,python的布尔值返回一个布尔值:

1
2
3
4
>>> True ^ True
False
>>> True ^ False
True

andor运算符主要用于支持短路,但xor不能短路。

还有!=

1
2
3
4
>>> True != True
False
>>> True != False
True

但是当用更多的参数链接时,这并不能满足您的需要:

1
2
>>> True != True != True
False

(A and B and C and D) or ((A and not (B or C or D)) or (not A and (B and C and D)))将简化为:(B and C and D) or (A and not (B or C or D))