如何在Python中获得两个变量的逻辑异或?
例如,我有两个期望是字符串的变量。我想测试其中只有一个包含True值(不是None或空字符串):
str1 = raw_input("Enter string one:") str2 = raw_input("Enter string two:") if logical_xor(str1, str2): print "ok" else: print "bad"
该^运营商似乎是按位,并在所有对象没有定义:
^
>>> 1 ^ 1 0 >>> 2 ^ 1 3 >>> "abc" ^ "" Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unsupported operand type(s) for ^: 'str' and 'str'
如果你已经将输入标准化为布尔值,则!=为xor。
!=
xor
bool(a) != bool(b)