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

发布于 2021-01-29 18:31:55

我有一个可以接收零或三个命令行参数的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):

关注者
0
被浏览
44
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

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

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

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



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看