Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python检查是否只有一个对象不是None_Python - Fatal编程技术网

Python检查是否只有一个对象不是None

Python检查是否只有一个对象不是None,python,Python,我有两个python对象a和b 检查这些对象中是否只有一个是None?使用Python的^(XOR)操作符,最好/最有效/最具Python风格的方法是什么 (a is None) ^ (b is None) 实际上,您需要的是关于这两个对象是否为None的XOR或Exclusive or函数。以下内容适用于您: (a为无)^(b为无) 关于如何在Python中获取对象上的XOR,可以在这里找到更详尽的答案: 您似乎在问3个不同的问题。你想要最好的,最有效的,还是最有活力的?第一个和第三个是观点

我有两个python对象
a
b


检查这些对象中是否只有一个是
None

使用Python的
^
(XOR)操作符,最好/最有效/最具Python风格的方法是什么

(a is None) ^ (b is None)

实际上,您需要的是关于这两个对象是否为None的XOR或Exclusive or函数。以下内容适用于您:

(a为无)^(b为无)

关于如何在Python中获取对象上的XOR,可以在这里找到更详尽的答案:


您似乎在问3个不同的问题。你想要最好的,最有效的,还是最有活力的?第一个和第三个是观点,所以离题了。第二个可能并不重要:
如果不是的话
也许?
总和(x对(a,b)中的x是无的)==1
听起来有些过分了:)
(a是无的)!=(b为无)
布尔值是整数
True==1
False==0
。这是用石头写的,我不知道是否最好使用
=。是的,逻辑和按位异或对于布尔运算是等价的,但仍然…。@juanpa.arrivillaga我也被撕裂了。当我想到“两个布尔值中只有一个是真的”时,我自动地想到了XOR,但是
=也适用。这就是为什么我在这里引用了老问题:是的,对我来说,问题是位运算符和逻辑运算符之间的区别。不幸的是,python没有逻辑上的异或运算符。当我浏览代码并看到按位
^
,我认为“这里正在进行一些按位操作”,但另一方面,
=并不是我脑海中的“异或”。我做了一个快速的基准测试,^似乎稍微更有效率。