Python虽然循环没有停止

时间:2018-03-09 19:33:06

标签: python python-2.7 floating-point

我有一个应该计算2的平方根的脚本,只有它目前有两个我似乎无法解决的问题。首先,while循环不会停止,即使它应该停止:

(这是我运行此脚本时输出的前几行,其余的只是重复最后4行。)

sqrt:  1.5
sq:  2.25
sqrt:  1.41666666667
sq:  2.00694444444
sqrt:  1.41421568627
sq:  2.0000060073
sqrt:  1.41421356237
sq:  2.0
sqrt:  1.41421356237
sq:  2.0

另外,由于2的平方根是无限数,我不明白为什么它在1.41421356237停止并且没有更大的数字。

这是我的代码:

import time

def sq(inp):
    a = float(inp)
    return a * a

a = 2.0
b = 1
while sq(b) != 2.0:
    b = (b + a / b) / 2
    print 'sqrt: ', b
    print 'sq: ', sq(b)
    time.sleep(0.1)
print 'Done!'

(我已经添加了一些额外的内容来澄清,例如print 'Done'和延迟,但它对我没有任何改变。)

非常感谢任何帮助。谢谢!

0 个答案:

没有答案