python菜鸟问题,如下图,为何答案是永不停止呢?当“guess=5.0"时,while 循环体内的 abs(guess**2-x)不
展开全部
测试一下就知道,python的浮点运算精度上有诡异的“bug”,加的是0.1,但很有可能print出来变成0.09999999...,导致刚好偏差了一点
就算你说的当“guess=5.0"时,if不再满足,但不满足后,guess也不会再加,那么guess就永远小于25,while不会停止
改成下面就可以停止
while guess <= x:
if abs(guess**2 - x) < epsilon:
break
guess += step
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询