Python 评估布尔值

评估值

bool() 函数允许你评估任何值,并返回 TrueFalse

例子 1

评估一个字符串和一个数字:

print(bool("Hello"))
print(bool(15))

亲自试一试

例子 2

评估两个变量:

x = "Hello"
y = 15

print(bool(x))
print(bool(y))

亲自试一试

大多数值为 True

如果有内容,则几乎所有值都会被评估为 True。

除了空字符串,任何字符串都是 True。

除了 0,任何数字都是 True。

除了空的,任何列表、元组、集合和字典都是 True。

实例

以下将返回 True:

bool("abc")
bool(123)
bool(["apple", "cherry", "banana"])

亲自试一试

一些值为 False

事实上,除了空值(如 ()、[]、{}、""、数字 0 和值 None)之外,没有多少值会被评估为 False。当然,值 False 会被评估为 False。

例子 1

以下将返回 False:

bool(False)
bool(None)
bool(0)
bool("")
bool(())
bool([])
bool({})

亲自试一试

还有一个值,或者在这种情况下是对象,被评估为 False,那就是如果你有一个由包含 __len__ 函数的类创建的对象,该函数返回 0 或 False:

例子 2

class myclass():
  def __len__(self):
    return 0

myobj = myclass()
print(bool(myobj))

亲自试一试