【发布时间】:2015-06-16 13:07:05
【问题描述】:
当我尝试将 type() 与 if 语句放在一起时,我有 TypeError: a float is required
示例:
from math import *
x=input("Enter a Number: ")
if type (sqrt(x)) == int:
print (sqrt(x))
else:
print("There is no integer square root")
显然我不能使用x= float(x)
【问题讨论】:
-
“显然我不能使用
x= float(x)”——为什么不呢? -
使用
float.is_integer方法来测试一个浮点数是否是一个整数。 -
你也可以使用
isinstance。 -
这里没有类型的问题。输入返回一个字符串,句点。在将其传递给 sqrt() 之前,您需要将其转换为浮点数(x = float(x) 可以正常工作)。
-
我认为您收到了错误
TypeError: a float is required。那是因为x是一个字符串。你不能取字符串的平方根。请注意,即使您执行sqrt(float(x)),您的 if 语句也永远不会计算为 true,因为math.sqrt始终返回一个浮点数。
标签: python math if-statement type-conversion typeerror