python真理测试中bool()和==之间有什么区别吗?
我有两个问题 任何对象、类型、操作、函数都可以。。在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
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说。