Python 为什么';它不显示为“float”类型吗`

Python 为什么';它不显示为“float”类型吗`,python,floating-point,command-prompt,Python,Floating Point,Command Prompt,当我发现了一些我个人不知道的东西时,我正在摆弄python命令提示符 这是我试图解开的一个谜: num = int(5) / 2 num == float # False 我发现它没有返回True,这很奇怪。所以我试着与其他运营商合作 num == int # False num == str # False 它们都返回False,但当我检查哪个类型时,它是False。它给了我这个 type(num) # Float 当我将它与float操作符进行比较时,它不应该返回True 有人知道这

当我发现了一些我个人不知道的东西时,我正在摆弄python命令提示符

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

num = int(5) / 2

num == float # False
我发现它没有返回
True
,这很奇怪。所以我试着与其他运营商合作

num == int # False
num == str # False
它们都返回False,但当我检查哪个
类型时,它是False。它给了我这个

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
)进行比较。 要实现此目的,应将
num
的类型与
float
进行比较:

type(num) == float
您还可以执行以下操作:

isinstance(num, float)
根据PEP8(python的编码风格约定),哪个更好

两者都将返回
True

实际上
num=int(5)/2
在结果2.5中给出了not float,当您检查变量类型时,您必须编写类似的代码

type(num)=float
num==float

因为num是2.5而不是float

您需要将值(实例)与类定义进行比较,您应该考虑使用I get it。您无法将
类型
与值进行比较,这是不可能的。但是我可以比较一个类型和一个类型,或者一个值和一个值。谢谢你清理它。@blyboy你“可以”比较一个类型和一个值,只是它会是false,它们不一样,所以当你比较一个值和一个类型时,它会一直返回
false
。除非您使用
not
运算符。@bliboy事实上是的,您只需要想一想:什么是
num
?=>它包含2.5,它不是类型float本身,而是类型float的值