“将此循环封装在一个名为 square_root 的函数中,该函数将 a 作为参数,选择合理的 x 值,并返回 a 的平方根的估计值。”
def square_root(a):
x = 2
y = (x + a/x) / 2
epsilon = 0.00000000001
if abs(y - x) < epsilon:
print y
while abs(y - x) > epsilon:
x = x + 1
y = (x + a/x) / 2
break
else:
return
print y
square_root(33)
最多为 'a' 加上 33,它估计正确的平方根。之后,它开始呈指数级增长,当我为“a”发送 100 时,它猜测平方根约为 18。我不知道这是否是估计的本质。我知道如何找到精确的平方根,但这是“Think Python”一书中的一个练习,它用于练习递归和算法思考。