我的结果是四舍五入的,我想要完整的答案

my results are rounded, i want the full length answer please

这是我在 Python 中的代码:

def my_sqrt(a):
    x=1
    while True:
        y=(x+a/x)/2.0
        if y==x:
            break
        x=y
        return y

我得到的输出:

>>> my_sqrt(1.0)
>>> my_sqrt(2)
1.5

希望获得:

my_sqrt(1.0)-->1.0
my_sqrt(2)-->1.41421356237

return 结束函数,returns 立即结束。它是缩进的,所以它在循环中并且 运行s 在第一次迭代结束时无条件地。由于 break:

循环完成后将其缩减为 运行
def my_sqrt(a):
    x = 1
    while True:
        y = (x + a / x) / 2.0
        if y == x:
            break
        x = y
    return y

或者,由于 return 结束函数并因此结束循环,您甚至不需要 break:

def my_sqrt(a):
    x = 1
    while True:
        y = (x + a / x) / 2.0
        if y == x:
            return y
        x = y