0
我想通过函数sqrt(a)找到一个数的平方根。 fixedPoint(f,epsilon)是一个辅助函数。问题是我得到这个TypeError:'浮动'对象不可调用。我是编程新手,所以如果任何人都可以帮助和发现是错误,并解释这个错误是什么意思?为什么有这种TypeError?
def fixedPoint(f, epsilon):
"""
f: a function of one argument that returns a float
epsilon: a small float
returns the best guess when that guess is less than epsilon
away from f(guess) or after 100 trials, whichever comes first.
"""
guess = 1.0
for i in range(100):
if abs(f(guess) - guess) < epsilon:
return guess
else:
guess = f(guess)
return guess
def sqrt(a):
def tryit(x):
return 0.5 * (a/x + x)
return fixedPoint(tryit(a), 0.0001)
您正将'tryit' *的返回值作为参数传递给'fixedPoint',**而不是**函数本身。 – jonrsharpe 2014-09-28 12:07:23
'tryit'返回一个浮点数,然后'f'是一个浮点数,'f(guess)'导致错误。 – Maroun 2014-09-28 12:07:44