在python中,为什么
zero = 0
one = 1
if zero:
print('True') # this print nothing
if one:
print('True') # this print True
我想,当 zero = 0
这应该是正确的,应该会给我一个答案。True
但为什么什么都没有?如果这是正确的,为什么当 if one
它给我 True
?
因为... bool(0) == False
和 bool(1) == True
.
参考本文。真值测试
任何对象都可以进行真值测试,用于if或while条件中,或作为下面布尔运算的操作数。下面的值被认为是假的。
其他所有的值都被认为是真--所以许多类型的对象总是真。
除非另有说明,否则具有布尔结果的操作和内置函数总是返回0或False,而返回1或True为真。(重要的例外:布尔运算 "or "和 "and "总是返回其操作数之一。)
bool
的一个子类型。int
.
bool
有两个值。True
和 False
你可以把它们看作是整数1和0的 "定制 "版本,只是打印方式不同。
True
而 False
与1和0一样,只是它重新定义了 str
和 repr
以不同的方式显示它们。
>>> type(True)
<class 'bool'>
>>> isinstance(True, int)
True
>>> True == 1
True