【发布时间】:2018-08-07 21:01:45
【问题描述】:
我知道 Python 内置类型有一个“真实性”值,空字符串被认为是False,而任何非空字符串都被认为是True。
这是有道理的
我可以使用内置函数bool 进行检查。
>>> bool("")
False
>>> bool("dog")
True
在使用条件句时,我也可以利用这些真实性值。例如:
>>> if "dog":
... print("yes")
...
yes
这令人困惑
这不适用于 == 运算符:
>>> "dog" == True
False
>>> "dog" == False
False
谁能解释为什么== 的行为似乎与条件不同?
【问题讨论】:
-
您阅读过文档吗?
-
==是比较运算符。字符串和布尔值永远不能相等。 -
比较
"dog" == "True"时,您也在比较这些对象的类型,而不仅仅是它们的布尔值。 -
这里比较的是类型,而不是值
-
我有裤子。我不等于我的裤子。字符串具有真值。一个字符串不等于它的真值。
标签: python python-3.x boolean truthiness