一尘不染

如何在Python中获得两个变量的逻辑异或?

python

如何在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'

阅读 530

收藏
2020-02-23

共1个答案

一尘不染

如果你已经将输入标准化为布尔值,则!=xor

bool(a) != bool(b)
2020-02-23