“if a or b or c but not all”的Python语法

问题:

我有一个python脚本可以接收零或三个命令行参数。 (它运行在默认行为或需要指定的所有三个值。)
什么是理想的语法:

if a and (not b or not c) or b and (not a or not c) or c and (not b or not a):

回答:

如果你的意思是一个最小的形式,可以这样做:

if (not a or not b or not c) and (a or b or c):

哪个翻译你的问题的标题。
更新:正如波动和Supr所说,你可以应用德摩根的法律并获得等价物:

if (a or b or c) and not (a and b and c):

我的建议是使用任何形式对您和其他程序员更重要。第一个意思是“there is something false, but also something true”,第二个“There is something true, but not everything”。如果我要在硬件中进行优化或者这样做,那么我会选择第二个,这里只是选择最可读的(也考虑到你将要测试的条件及其名称)。我选了第一个

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Python syntax for “if a or b or c but not all of them”

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

6 + 4 =