python菜鸟问题,如下图,为何答案是永不停止呢?当“guess=5.0"时,while 循环体内的 abs(guess**2-x)不

就“小于”"epsilon“了吗?此时程序会怎样呢?谢谢!... 就“小于”"epsilon“了吗?此时程序会怎样呢?谢谢! 展开
 我来答
阳光的雷咩咩
2017-04-07 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7885万
展开全部
  1. 测试一下就知道,python的浮点运算精度上有诡异的“bug”,加的是0.1,但很有可能print出来变成0.09999999...,导致刚好偏差了一点

  2. 就算你说的当“guess=5.0"时,if不再满足,但不满足后,guess也不会再加,那么guess就永远小于25,while不会停止

  3. 改成下面就可以停止


  4. while guess <= x:
        if abs(guess**2 - x) < epsilon:
            break
        guess += step
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式