Python:bool(-1) 返回 true。为什么会出现这种情况?

Ven*_*kat 2 python integer boolean numbers built-in

我决定将其转换-1为 bool 来检查结果是什么。

与我的预期相反,它bool(-1)会返回。FalseTrue

为什么会这样呢?

And*_*eas 5

根据Python 3文档,大多数被认为是错误的内置对象是:

  • 定义为 false 的常量:None 和 False。
  • 任何数字类型的零:0, 0.0, 0j, Decimal(0), Fraction(0, 1)
  • 空序列和集合:''、()、[]、{}、set()、range(0)

请注意,它仅指定零为假,而不是任何等于或小于 0 的值。这在各种其他编程语言中也很常见。