「將此循環封裝在一個名爲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