【发布时间】:2013-10-15 20:44:40
【问题描述】:
我预计 bool(1) 使用 Python 等同于 True - 确实如此 - 然后我预计其他整数在转换为 bool 时会出错,但情况似乎并非如此:
>>> x=23 #<-- replace with any integer
>>> bool(x)
True
发生了什么?我误解了bool(x) - 这不会将 x 转换为 Boolean 数据类型吗?
很多 cmets 关于为什么我觉得这违反直觉。如果我像下面这样写上面的内容,乍一看没有语言知识,这似乎违反直觉:
>>>True == bool(23)
True
【问题讨论】:
-
bool(-1)是True。如果您在谈论整数,则只有bool(0)是False。 -
你也可以在这里查看更多信息:docs.python.org/3/library/functions.html#bool
-
您为什么希望其他整数值不能转换为布尔值?
-
您不应该假设
True具有任何特定的非零值;这是一个实现细节,它有任何整数值,更不用说具体的 1。 -
如果您知道
bool(23)是True,为什么不期待True == bool(23)?
标签: python