即使条件评估为true,代码也会跳过循环

时间:2013-06-15 21:05:29

标签: python while-loop

我无法让我的程序的这部分进入while循环。插入polyx_0epsilon的值后,程序会使用功能ans计算evaluate_poly()的值,该函数可以正常运行实例给出答案-13.2119。我使用的epsilon值是0.0001。由于abs(ans)实际上大于epsilon,为什么它会跳过循环?

我在print ans行的正下方添加了x_01 = 0语句,以确保它在while循环之前正确计算,并且还有一个print epsilon语句以确保它在我{ {1}}值正确(它确实如此)。

epsilon

2 个答案:

答案 0 :(得分:2)

你在循环中放了两个return语句。当第一个被击中时,该功能仅立即退出。因此,不仅在第一个循环中退出while循环,而且永远不会到达print语句。

答案 1 :(得分:1)

你的循环中有return ans。因此,此时函数将退出,永远不会到达print

如果ans确实是-13.2119,那么它确实会进入循环,由于return,它不会执行其中的所有内容。

即使您删除循环内的return ans行,其末尾也会return x_01。因此,在这种情况下,循环最多只运行一次,这将使其与if语句相同。