“将此循环封装在一个名为square_root的函数中,该函数以参数为参数,选择合理的x值,并返回a的平方根估计值。”练习7.2:Think Python
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)
最多把33 'A',它估计正确的平方根。在那之后,它开始以指数形式跳跃,直到当我发送'a'为100时,它猜测平方根约为18.我不知道这可能是估计的性质。我知道如何找到精确的平方根,但是这是来自“Think Python”一书的练习,它是通过递归和思考的算法实践的。
为什么你在你的'while'循环体直接有'break'? – Blender
它不会给我任何其他的东西,只是空白。它会运行,但不会打印'y' – troychroi