比较真假混淆

时间:2013-09-11 15:56:01

标签: python

我对测试赋值为False,True

的值感到困惑

要检查True值,我们可以简单地

a = True
if (a):

假的怎么样?

a=False
if (a) <--- or should it be if (a==False), or if not a ?

3 个答案:

答案 0 :(得分:26)

来自Python Style Guide

  

对于序列,(字符串,列表,元组),请使用空的事实   序列是错误的。

Yes: if not seq:
     if seq:

No: if len(seq)
    if not len(seq)
  

[..]

     

不要使用==。

将布尔值与True或False进行比较
Yes: if greeting:
No: if greeting == True:
Worse: if greeting is True:

答案 1 :(得分:3)

使用not

if not a:
    ....
    # If a is the empty value like '', [], (), {}, or 0, 0.0, ..., False
    # control flow also reach here.

is False

if a is False:
    ....

答案 2 :(得分:1)

检查值是否为真:

if a:
    pass

检查值是否为真:

if not a:
    pass

但是,对于not a:以外的值,TrueFalse(且为真),例如。 None0和空容器。

如果您想检查某个值是True还是False(尽管您通常不这样做),请尝试:

if a is True:
    pass

if a is False:
    pass

修改:要检查值 True还是False,您似乎应该使用if isinstance(a, bool) and aif isinstance(a, bool) and not a