Python 为什么';它不显示为“float”类型吗`
当我发现了一些我个人不知道的东西时,我正在摆弄python命令提示符 这是我试图解开的一个谜: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 有人知道这
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的值