使用 Python 编写布尔表达式

Writing a Boolean Expression using Python

我正在尝试在 Python 中编写一个布尔表达式,但似乎 Python 只能对位运算执行 XOR 表达式。

在没有 XOR 运算符的情况下,在 Python 中编写此表达式的最佳方法是什么。

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

编辑:

我试过这个:

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 的布尔值 return 当 ^-ed 在一起时的布尔值:

>>> True ^ True
False
>>> True ^ False
True

andor 运算符的存在主要是为了支持短路,但 XOR 不能短路。

还有!=:

>>> True != True
False
>>> True != False
True

但是当链接更多参数时,这并不能达到你想要的效果:

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