Python 实现计算平方根方法

799 阅读1分钟

数学公式中,有牛顿方法可以实现迭代的计算平方根,公式如下:

a - 平方根数

x, y - a 的平方根

比如:a = 16,则 x = y = 4

但是也会有数字的平方根是无限循环小数,我们判断的话只需要 x - y 的绝对值小于某个数,我们就任务相等了

代码思路:

1. 简单判断输入是否合法

2. 调用计算平方根的函数,循环计算,知道计算出结果位置并返回

def spare_root(a):
    # 设定一个极小值 epsilon,两个数相减的绝对值小于他就为相等
    epsilon = 0.0000001
    # 随意设定一个估计值 x
    x = a / 3
    while True:
        y = (x + a / x) / 2
        print(y)
        if abs(x - y) < epsilon:
            print(y)
            break
        x = y
    return "{:.2f}".format(x)

if __name__ == "__main__":
    while True:
        user_input = input("请输入你要计算的平方根数 > ")
        if user_input == "quit":
            break
        if user_input.isalpha():
            print("请输入数字,如果要退出请输入【quit】")
            break
        # 调用计算函数
        print(spare_root(float(user_input)))