Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python真理测试中bool()和==之间有什么区别吗?_Python_Boolean - Fatal编程技术网

python真理测试中bool()和==之间有什么区别吗?

python真理测试中bool()和==之间有什么区别吗?,python,boolean,Python,Boolean,我有两个问题 任何对象、类型、操作、函数都可以。。在python中,当bool方法调用布尔值时,是否返回布尔值 为什么下面两行代码不返回相同的答案 print (float == True) #prints False print bool(float) #prints True 是的 类布尔[x] 返回一个布尔值,即True或False。使用标准真值测试程序转换x 任何物体上的作品: 任何对象都可以测试真值,用于if或while条件,或作为下面布尔运算的操作数。以下值被视为fal

我有两个问题

任何对象、类型、操作、函数都可以。。在python中,当bool方法调用布尔值时,是否返回布尔值

为什么下面两行代码不返回相同的答案

print (float == True)  #prints False
print bool(float)      #prints True
是的 类布尔[x]

返回一个布尔值,即True或False。使用标准真值测试程序转换x

任何物体上的作品:

任何对象都可以测试真值,用于if或while条件,或作为下面布尔运算的操作数。以下值被视为false:[…]所有其他值都被视为true-因此许多类型的对象始终为true

float不等于True。但是,当询问float是真实值时,即如果float:计算真分支还是假分支,答案是肯定的,它将计算真分支。 是的,Python中的每个对象在与bool一起使用时都返回一个布尔值,bool调用该对象的_u非零__;-方法

因为第一次打印不调用_非零__方法

两者,==和bool是不同的用于相等性测试,而bool返回作为参数传递给它的对象的真值测试结果

根据bool的文件-

类布尔[x]

返回一个布尔值,即True或False。使用标准真值测试程序转换x。如果x为false或省略,则返回false;否则返回True

标准真理测试程序可在中找到

任何对象都可以测试真值,用于if或while条件,或作为下面布尔运算的操作数。以下值被认为是错误的:

没有

假的

任何数字类型的零,例如0、0L、0.0、0j

任何空序列,例如,,[]

任何空映射,例如,{}

用户定义类的实例,如果该类定义了一个_非零_或_len u方法,则该方法返回的整数为零或布尔值为False

所有其他值都被认为是真的-因此许多类型的对象总是真的

当您执行boolfloat时,您正在检查float的真值,这是真的


但是当你做float==True时,你做的是相等。请注意,这不是真值测试,而是相等。在这种情况下,float和True不相等,因此结果为False。

因为0.02不等于True,但实现了uu nonzero_uu接口,该接口返回True,因为0.02不等于零。float是,当然它与True不同。==永远要考虑不同类型的物体是不相等的。我明白……实际上它并不总是叫非零。考虑:a=对象;a、 非零产生一个属性错误,但boola是真的。谢谢。。我还有一个问题。。所以我知道float是一种类型。但我该如何将True归类为一个单一的不可变对象呢?或者一个bool:>>>>typeFalse说。