如何在Python中获得两个变量中的logical xor个?

例如,我有两个变量,我希望是字符串.我想测试其中只有一个包含真值(不是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.

bool(a) != bool(b)

Python相关问答推荐

如何根据参数推断对象的返回类型?

使用miniconda创建环境的问题

如何访问所有文件,例如环境变量

聚合具有重复元素的Python字典列表,并添加具有重复元素数量的新键

Python库:可选地支持numpy类型,而不依赖于numpy

我如何根据前一个连续数字改变一串数字?

使用groupby方法移除公共子字符串

使用BeautifulSoup抓取所有链接

在代码执行后关闭ChromeDriver窗口

Python日志(log)模块如何在将消息发送到父日志(log)记录器之前向消息添加类实例变量

不允许 Select 北极滚动?

如何在FastAPI中替换Pydantic的constr,以便在BaseModel之外使用?'

Tensorflow tokenizer问题.num_words到底做了什么?

有没有办法在不先将文件写入内存的情况下做到这一点?

如何使用大量常量优化代码?

Polars时间戳同步延迟计算

如何在python tkinter中绑定键盘上的另一个回车?

使用xlsxWriter在EXCEL中为数据帧的各行上色

如何在PYTHON中向单元测试S Side_Effect发送额外参数?

Pandas 删除只有一种类型的值的行,重复或不重复