为什么单个值可以作为条件
Why does a single value work as a condition
显然,在条件语句中,您需要确保 return 为真值或假值,以执行或跳过与 if 语句关联的代码块。单个值如何在 python 中用作真布尔值?我不确定这是否适用于所有语言,但我在 python 3.x.
中发现了它
示例:
value = 1
if value:
print("value == True") # prints every time
我希望编译器会抱怨或者 return 错误。为什么编译器认为 if value
为真?
非 0 的整数或浮点值被视为 True:
In [8]: bool(int(1))
Out[8]: True
In [9]: bool(int(0))
Out[9]: False
In [10]: bool(int(-1))
Out[10]: True
In [16]: bool(float(1.2e4))
Out[16]: True
In [17]: bool(float(-1.4))
Out[17]: True
In [20]: bool(0.0)
Out[20]: False
In [21]: bool(0.000001)
Out[21]: True
类似地,空列表、集合、字典、空字符串、None等都被视为假:
In [11]: bool([])
Out[11]: False
In [12]: bool({})
Out[12]: False
In [13]: bool(set())
Out[13]: False
In [14]: bool("")
Out[14]: False
In [19]: bool(None)
Out[19]: False
显然,在条件语句中,您需要确保 return 为真值或假值,以执行或跳过与 if 语句关联的代码块。单个值如何在 python 中用作真布尔值?我不确定这是否适用于所有语言,但我在 python 3.x.
中发现了它示例:
value = 1
if value:
print("value == True") # prints every time
我希望编译器会抱怨或者 return 错误。为什么编译器认为 if value
为真?
非 0 的整数或浮点值被视为 True:
In [8]: bool(int(1))
Out[8]: True
In [9]: bool(int(0))
Out[9]: False
In [10]: bool(int(-1))
Out[10]: True
In [16]: bool(float(1.2e4))
Out[16]: True
In [17]: bool(float(-1.4))
Out[17]: True
In [20]: bool(0.0)
Out[20]: False
In [21]: bool(0.000001)
Out[21]: True
类似地,空列表、集合、字典、空字符串、None等都被视为假:
In [11]: bool([])
Out[11]: False
In [12]: bool({})
Out[12]: False
In [13]: bool(set())
Out[13]: False
In [14]: bool("")
Out[14]: False
In [19]: bool(None)
Out[19]: False