Python::bool(float(';0.0';)->;返回False?为什么?
Python::bool(float(';0.0';)->;返回False?为什么?,python,python-2.7,Python,Python 2.7,bool(float('0.0'))->返回False?为什么? 然而,我可以轻松地将casefloat('0.0')键入为0.0,没有任何例外。通常在许多编程语言中,0的数值被视为可转换为逻辑False。相反,您可以尝试bool(float('0.1')),并看到它的计算结果为True(as0.1!=0)。可以测试任何对象的真值,以便在if或while条件下使用,或者用作下面布尔运算的操作数。以下值被认为是错误的: None False zero of any numeric type,
bool(float('0.0'))
->返回False
?为什么?
然而,我可以轻松地将case
float('0.0')
键入为0.0
,没有任何例外。通常在许多编程语言中,0
的数值被视为可转换为逻辑False
。相反,您可以尝试bool(float('0.1'))
,并看到它的计算结果为True
(as0.1!=0
)。可以测试任何对象的真值,以便在if或while条件下使用,或者用作下面布尔运算的操作数。以下值被认为是错误的:
None
False
zero of any numeric type, for example, 0, 0L, 0.0, 0j.
any empty sequence, for example, '', (), [].
any empty mapping, for example, {}.
instances of user-defined classes, if the class defines a __nonzero__() or __len__() method, when that method returns the integer zero or bool value False.2.5
所有其他值都被认为是真的——因此许多类型的对象总是真的 专业提示:反向工作原理相同:
float(False)->0.0
0
是falsy.0在Python中是假的,不是吗?什么例外?你说的“类型案例”是什么意思?奇怪的是,你想知道为什么bool
返回一个布尔值,或者你期望的是真的吗?你可能会觉得bool(表达式)
的意思是“这个表达式可以计算而不崩溃吗?”在这种情况下,你可能会对bool(float('0.0'))
在float时计算为False感到困惑('0.0')
本身不会崩溃。但这不是bool所做的。float('0.0')给我一个float对象->类型,问题是bool(float('0.1'))->True如何,其中作为bool(float('0.0'))->False,float('0.0')也返回类型(在cmd行中测试…)