玩蛇网提供最新Python编程技术信息以及Python资源下载!

Python利用二分法计算平方根哪里出问题了

def square_root_2():
    i = 0
    c= 10
    m_max = c
    m_min = 0
    g = (m_min + m_max)/2
    while (abs(g*g-c) > 0.001):    #精度设为为0.001
        if (g*g < c):
            m_min = g
        else:
            m_max = g
        g = (m_min+m_max)/2
        i = i + 1
        print ("%d:%.5f" % (i,g))    #小数点后取5位
square_root_2()

运行倒是可以的,但是一直是无限循环的情况,哪里不对呢?

问题出现在这个地方:g = (m_min + m_max) / 2,m_min、m_max都为整数其和也为整数,两个整数相除,结果为整数。修改为下面即可:

g = (m_min+m_max) / 2.0

玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/wenda/wd18568.html

相关文章 Recommend

玩蛇网Python互助QQ群,欢迎加入-->: 106381465 玩蛇网Python新手群
修订日期:2017年06月02日 - 17时41分44秒 发布自玩蛇网

您现在的位置: 玩蛇网首页 > Python问题解答 > 正文内容
我要分享到:

必知PYTHON教程 Must Know PYTHON Tutorials

必知PYTHON模块 Must Know PYTHON Modules