>>> dict = {}
>>> a=2
>>> if a is not None and dict is None:
... print("lol")
... else:
... print(" Print result is a")
...
result is a
为什么第一个if statement does not run? I am specifying that the
字典is empty and that
“ a”`存在。
参考:https://docs.python.org/2/library/stdtypes.html#truth-value-testing
答案 0 :(得分:1)
我指定的字典是空的,并且“ a”存在。
不,您不是。您正在测试a
是否与None
(真)不同,以及{}
是否与None
(假)相同。
您想要的是a and not d
。您几乎永远都不想与布尔值进行比较,并且您当然也不想与is
进行比较。
答案 1 :(得分:1)
因为字典不是None
。
值为false和满足is None
之间存在差异。
直接测试真实性:
if a is not None and not dict:
但是,正如注释中所指出的,不要将变量的名称与现有函数的名称相同。那只是在将来要求'dict' object is not callable
错误。