[英]I'm confused about the print out in python while loops
我认为循环应该以打印出 23.1 结束,为什么要在 23.0 中停止? 23.0 仍然满足“如果猜测 <= x”,不是吗?
我的 python 版本是 2.7
我是新手,一直卡在这里,希望有人可以为我解释一下,非常感谢。
x = 23
epsilon = 0.01
step = 0.1
guess = 0.0
while abs(guess**2-x) >= epsilon:
if guess <= x:
guess += step
print guess
else:
break
if abs(guess**2 - x) >= epsilon:
print 'failed'
else:
print ('succeeded: ' + str(guess))
当guess
为23.000000000000057
时,循环到达break
,并且大于23
。 您可能期望它是23.0
,但浮点数不会产生精确的算术。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.