小编典典

“如果是a或b或c但不是全部”的Python语法

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):


阅读 146

收藏
2020-12-20

共1个答案

小编典典

如果您要使用的是最小形式,请执行以下操作:

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

这将翻译您的问题的标题。

更新:正如Volatility and Supr正确地说的那样,您可以应用De Morgan的定律并获得等效的:

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

我的建议是使用对您和其他程序员更重要的形式。第一个意思是 “有一些错误,但也有一些真实” ,第二个 意思是“有一些真实,但不是全部”
。如果要在硬件上进行优化或执行此操作,则选择第二个,这里只选择最易读的代码(还要考虑要测试的条件及其名称)。我选了第一个。

2020-12-20