x = 25
epsilon = 0.01
step = 0.1
guess = 0.0
while guess <= x:
if abs(guess**2 -x) >= epsilon:
guess += step
if abs(guess**2 - x) >= epsilon:
print('failed')
else:
print('succeeded: ' + str(guess))
我得到這個Python程序,它試圖計算一個數字x
的平方根。出於某種原因,這個程序無限期地循環,我不知道爲什麼。爲什麼這個Python程序無限循環?
目前只有guess
有限多個值,因爲,後guess>x
(即,當guess>=25.1
,,所述while
循環然後停止)。在程序中間的while
命令是唯一的循環,所以發生了什麼?
把一些打印語句,並找出 – scrappedcola
所以會發生什麼,當'猜測= 5.0'?你的'if'語句不會匹配,但是'guess <= x'仍然是真的。 –
如果猜測在ε內,則不會停止循環。 – BrenBarn