-1
>>> 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

4

2 回答 2

1

我指定 dict 为空并且存在“a”。

不你不是。您正在测试是否aNone(true) 不同以及是否{}None(false) 相同。

你想要的是a and not d. 您几乎不想与布尔值进行比较,当然也不想与is.

于 2018-07-24T01:06:29.753 回答
1

因为字典不是None

值是假的和令人满意之间是有区别的is None

直接测试真实性:

if a is not None and not dict:

正如评论中指出的那样,不要将变量命名为与现有函数名称相同的名称。那只是要求'dict' object is not callable将来出现错误。

于 2018-07-24T01:08:05.523 回答