为什么Python认为布尔值是整数?
Python将布尔值视为整数。为什么?为什么Python认为布尔值是整数?,python,Python,Python将布尔值视为整数。为什么? >>> boolean = True >>> isinstance(boolean, int) True 反转条件并询问Python整数是否为布尔值(显然为否),您将得到以下结果: >>> integer = 123 >>> isinstance(integer, bool) False 文件中有: 有三种不同的数字类型:整数、浮点数和复数此外,布尔是整数的一个子类型。 True和
>>> boolean = True
>>> isinstance(boolean, int)
True
反转条件并询问Python整数是否为布尔值(显然为否),您将得到以下结果:
>>> integer = 123
>>> isinstance(integer, bool)
False
文件中有: 有三种不同的数字类型:整数、浮点数和复数此外,布尔是整数的一个子类型。
True
和False
在数字上分别等于Python中的1
和0
由于bool是int的一个子类,如上所述,内置函数“isinstance”返回true,如中所述
isinstance(对象,classinfo)
如果对象参数是classinfo参数或其(直接、间接或虚拟)子类的实例,则返回true。如果对象不是给定类型的对象,则函数始终返回false。如果classinfo是类型对象的元组(或递归地,其他此类元组),则如果对象是任何类型的实例,则返回true。如果classinfo不是类型或类型的元组,则会引发TypeError异常
比我快。另外,请参阅有关iInstance的文档。它返回true,它属于该类型或其子类型(如您所确定的),从而解释了问题中“isinstance”的行为。true和False不仅仅是别名,它们是不同的值。是的,我刚刚测试过,发现
true is 1
返回False@user2357112为我修复了它。您可以在上阅读关于采用bool
类型的信息。这应该有助于澄清你的许多问题。math.sin(True)
=0.8415
,工作中的布尔三角。