为什么它不显示为类型"浮点数"



当我在python命令提示符下闲逛时,我发现了一些我个人不知道的东西。

这是我试图解开的一个谜团:

num = int(5) / 2
num == float # False

我觉得奇怪的是它没有返回True。所以我试着和其他运营商合作。

num == int # False
num == str # False

它们都返回False,但当我检查它是哪个type时,它会给我这个。

type(num) # Float

当我将它与float运算符进行比较时,它不应该返回True吗?

有人知道为什么会这样吗?

您的num包含值2.5,它不包含类型float,因此num == float不可能是真正的


可能是真的

  • 2.5值的比较

    print(num == 2.5)                # true
    
  • num的类型与float型的比较

    print(type(num) == float)        # true
    
  • 检查num的类型是否为float

    print(isinstance(num, float))    # true
    

您正在比较一个对象(类型为float(和一个类(本例中为float(。要获得True,您应该将num的类型与float:进行比较

type(num) == float

你也可以做:

isinstance(num, float)

根据PEP8(python的编码风格约定(,这是更好的。

两者都将返回True

实际上num = int(5) / 2在结果2.5中给你的不是浮点的,当你检查变量的类型时,你必须写这样的

type(num) == floatnum == float因为num是2.5而不是浮动

最新更新