使用 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
and
和 or
运算符的存在主要是为了支持短路,但 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))
我正在尝试在 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
and
和 or
运算符的存在主要是为了支持短路,但 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))