为什么以下代码评估为false?

Apu*_*lol -2 python function

if all([0, 4, "Sample string"]):
    print "Yes"
else:
    print "No"
Run Code Online (Sandbox Code Playgroud)

尽管迭代具有所有值,但它始终打印否.我无法理解是什么让它评价为假.

Mar*_*ers 6

all()如果所有值都为true,则返回true ,请参阅函数文档:

返回True如果迭代的所有元素都是真(或者,如果可迭代为空).

0 不是真正的价值:

>>> bool(0)
False
Run Code Online (Sandbox Code Playgroud)

请参阅Python标准类型文档的真值测试部分:

以下值被视为false:

[...]

  • 任何数字类型的零,例如,0,0.0,0j.