我对测试赋值为False,True
的值感到困惑要检查True值,我们可以简单地
a = True
if (a):
假的怎么样?
a=False
if (a) <--- or should it be if (a==False), or if not a ?
答案 0 :(得分:26)
对于序列,(字符串,列表,元组),请使用空的事实 序列是错误的。
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:
以外的值,True
为False
(且为真),例如。 None
,0
和空容器。
如果您想检查某个值是True
还是False
(尽管您通常不这样做),请尝试:
if a is True:
pass
或
if a is False:
pass
修改:要检查值是 True
还是False
,您似乎应该使用if isinstance(a, bool) and a
和if isinstance(a, bool) and not a