在python中使用IFF

时间:2015-12-08 14:01:08

标签: python python-2.7

有没有办法在python中编写iff语句(即if和only if)。 我想在

中使用它
for i in range(x)
    iff x%2==0 and x%i==0:

但是,Python中没有iff语句。维基百科将truth table for iff定义为:

 a |  b  |  iff a and b
-----------------------
 T |  T  |      T
 T |  F  |      F
 F |  T  |      F
 F |  F  |      T

如何在Python中完成此操作?

5 个答案:

答案 0 :(得分:14)

如果查看truth table for IFF,当p和q都为真或两者都为假时,您可以看到(p iff q)为真。这与检查相等性是一样的,所以在Python代码中你要说:

if (x%2==0) == (x%i==0):

答案 1 :(得分:10)

根据Wikipedia

  

请注意,它等效于XNOR门产生的,与XOR门产生的相反。

如果您正在寻找的内容,您只需要这样:

if not(x%2 == 0 ^ x%i == 0):

答案 2 :(得分:2)

之前的答案解决了这个问题。

作为对此的澄清说明:if语句只接受一个输入,而不是多个输入。因此,当您执行if blah and bleh:时,它等同于if (blah and bleh):。首先计算表达式blah and bleh的真值,然后将结果输入if语句。

真值表类型的逻辑评估需要多个输入(ab)而不是一个,但if不能以这种方式工作。

答案 3 :(得分:1)

使用Biconditional语句等效:

enter image description here

答案 4 :(得分:0)

只是想知道一样。这是一个有效的快速解决方案

def iff(a,b,c):
    if a:
        return b
    else:
        return c