Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.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中检查两个条件是否都为真、只有一个为真或没有一个为真_Python_Algorithm_If Statement_Conditional Statements - Fatal编程技术网

在Python中检查两个条件是否都为真、只有一个为真或没有一个为真

在Python中检查两个条件是否都为真、只有一个为真或没有一个为真,python,algorithm,if-statement,conditional-statements,Python,Algorithm,If Statement,Conditional Statements,我有两个条件C1和C2。我希望我的程序在C1和C2为真,C1为真但不是C2,C2为真但不是C1,C1和C2都不是真的情况下执行不同的操作 现在我有了这个代码: if C1 and C2: ... elif C1: ... elif C2: ... else: ... 有没有更有效的方法用Python编写此代码?只需稍加修改 if C1: if C2: # both true else: # only C1 tru

我有两个条件C1和C2。我希望我的程序在C1和C2为真,C1为真但不是C2,C2为真但不是C1,C1和C2都不是真的情况下执行不同的操作

现在我有了这个代码:

if C1 and C2:
    ...
elif C1:
    ...
elif C2:
    ...
else:
    ...
有没有更有效的方法用Python编写此代码?

只需稍加修改

if C1:
    if C2: 
        # both true
    else:
        # only C1 true
elif C2:
    # only C2 true
else:
    # both false
这样,C1和C2都会被精确地检查一次。问题是,您对效率还是可读性更感兴趣。

定义“更高效”:代码行数更少?更快?如果每次替换省略号的代码都不同,那么这可能是最清晰的方法。如果有重复的代码部分,那么它将取决于结构是否可以更有效。