当我尝试这个时:
import math
g = input("Put your number here: ")
print ("The square root of you number is: " + int(math.sqrt(g)))
我写7
作为我的输入本身,我收到此错误消息:
TypeError: a float is required
我非常感谢任何解决方案和指针。谢谢!
答案 0 :(得分:2)
g = float(input("Put your number here: "))
使用input()可以获得字符串,但需要float(或int)。
答案 1 :(得分:2)
您收到TypeError
,因为math.sqrt
需要一个数字(浮点数或整数):
>>> import math
>>> math.sqrt(4.0)
2.0
>>> # Integers work too, even though the error message doesn't mention them
>>> math.sqrt(4)
2.0
>>> math.sqrt('4')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: a float is required
>>>
但是,input
在Python 3.x中返回一个字符串对象:
>>> x = input()
7
>>> type(x)
<class 'str'>
>>>
这意味着当您将g
提交给math.sqrt
时,g
将是一个字符串。
要解决此问题,您需要做两件事:
在将math.sqrt
提供给>>> import math
>>> g = int(input("Put your number here: "))
Put your number here: 7
>>> print ("The square root of you number is: " + str(int(math.sqrt(g))))
The square root of you number is: 2
>>>
之前,将print ("The square root of you number is: %d" % math.sqrt(g))
设为。这可以使用int
或float
完成。
将结果转换回字符串,将其添加到输出字符串中:
以下是演示:
{{1}}
但请注意,最后一行可以更清晰地重写:
{{1}}