我有3个变量,a, b, c
。我想检查a
是否为真,如果c
为真,但仅当b
为真。如果b
为false,则只检查a
。
例如:
如果a为真,但b为假,则返回true
如果a为真,则b为真,c为假,则返回false
如果a为假,则返回false。
构建这个if条件的最pythonic方法是什么?
答案 0 :(得分:8)
这不是严格的python - 更多的基本布尔检查。 如果按照正确的顺序排列,可以利用短路。
你有这样的TT:
--------------------
| A | B | C | Output
--------------------
| T | F | X | T
| T | T | T | T
| F | X | X | F
| T | T | F | F
如您所见,A == False
始终对应False
条件。如果A不为假,B
与输出条件成反比关系,'C'与输出条件直接关联。我会这样写:
if A and (not B or C):
答案 1 :(得分:6)
a and (not b or c)
也应该有用。
答案 2 :(得分:3)
修改了新要求
您可以使用if-then else条件表达式(之前的语法错误)
a and c if b else a
答案 3 :(得分:0)
怎么样
a == b == c == True or b != a == True