Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.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
用Pythonic方法进行xor测试_Python - Fatal编程技术网

用Pythonic方法进行xor测试

用Pythonic方法进行xor测试,python,Python,pythonic编写条件的方法是什么,该条件检查两个变量都不能为none,并且两个变量也不能为none。比如说 if a is None and b is None: raise SystemExit(1) if a is not None and b is not None: raise SystemExit(1) # rest of the code 如果all((a,b不是None)),您可以尝试:pass In [31]: a = 1 In [32]: b = 1 In [33]:

pythonic编写条件的方法是什么,该条件检查两个变量都不能为none,并且两个变量也不能为none。比如说

if a is None and b is None: raise SystemExit(1)
if a is not None and b is not None: raise SystemExit(1)
# rest of the code
如果all((a,b不是None)),您可以尝试
:pass

In [31]: a = 1

In [32]: b = 1

In [33]: all((a,b is not None))
Out[33]: True

In [34]: b = None

In [35]: all((a,b is not None))
Out[35]: False
注意:
a
b
的值设置为
0
将产生
True

肾盂?

In [36]: len('if a is not None and b is not None')
Out[36]: 34

In [37]: len('all((a,b is not None))')
Out[37]: 22

您在这里使用
pass
是因为您有
else
语句吗?在这种情况下,为什么不使用
如果a为None或b为None:
进行相反的测试?@yayu:那么你的测试是不正确的。如果a为无,b为无,则使用
:引发异常
@yayu:然后将该部分作为问题的一部分。目前,它只是太模糊,无法以任何有意义的方式回答,并且有可能被关闭为“不清楚”、“过于宽泛”或“主要基于意见”;您可以使用
bool(a为无)!=bool(b是None)
bool(a是None)^bool(b是None)
。OP的可能副本需要进行异或测试,例如,其中一个必须是
None
,另一个必须不是
None
@MartijnPieters:你很好地理解了这个问题吗?OP说,
检查两个变量不能都是无的,两个变量也不能都不是无的
。现在的问题比开始时清楚多了,但请阅读帖子上的评论。OP要求进行异或运算,我想他编辑了这个问题。这不是他最初问的问题。您只测试两个变量是否都是
None
,而不是相反。
if (a is None) != (b is None):
    raise SystemExit("kkthxbye")
# remainder of code