无法退出循环python 2.7。因为循环将永远持续下去

无法退出循环python 2.7。因为循环将永远持续下去,python,python-2.7,Python,Python 2.7,我不知道为什么,但下面的循环是无限的。我试着依次循环I和j,直到nxt和nyt。但是这个代码永远在循环,我不知道出路。附言:我不是计算机科学专业的学生,我仍在想,如果有任何帮助,我将不胜感激 #unperturbed residuals for i in range(0,nxt): if i==nxt: break for j in range(0,nyt): if index[i,j]!=0:

我不知道为什么,但下面的循环是无限的。我试着依次循环I和j,直到nxt和nyt。但是这个代码永远在循环,我不知道出路。附言:我不是计算机科学专业的学生,我仍在想,如果有任何帮助,我将不胜感激

    #unperturbed residuals
    for i in range(0,nxt):
      if i==nxt:
        break
      for j in range(0,nyt):
           if index[i,j]!=0:
             ronp, rwnp, 
              rgnp=residual.residual(po,sw,sg,i,j,boold,bwold,bgold,
                                    swold,sgold,rsoold,rswold,index, 
                                    delx, dely, depth, phi, kx, ky, 
                                    ax, ay, h, delt, qo, nxt, nyt, welin, 
                                    Vb, pvtgas, pvtoil, pvtw, relpermgo, 
                                    relpermow, time, it,fmult)
             ronp1+= (ronp,);rwnp1+=(rwnp,);rgnp1+=(rgnp,)
             rnp+=(ronp,rwnp,rgnp)

你还没有说在残差函数中,所有这些参数都会发生什么。但是,这在python 2中并不重要,除非您使用
xrange
而不是
range
。根据定义,这些
for
循环将终止。试着设置一个计数器,因为它们可能运行得很慢

另外,如果i==nxt,则不需要
,因为只要
nxt
没有减少,那么
for
循环就已经终止


如果您使用的是Python 3(与post标记相反),那么请确保没有增加
nxt

您使用的
nxt
nyt
的值是什么?小的更正:
range(0,x)
range(x)
相同。另外,最后一个值是
x-1
不是
x
。谢谢;)我合并了它,但问题仍然存在,而for循环的调试仍在继续。根据我的说法,它应该在我,j分别到达nxt,nyt后退出。内环(j)工作正常。问题在外环(i)中。我想我得到了错误。我有这样一句话:while err>1e-3:before first for line,这就是导致错误的原因。
for
在有限序列上的循环总是终止的,所以如果你有一个无止境的循环,它几乎总是一个
,而
循环或者你的循环不是无限的,但“仅仅”需要很长的时间。(如果迭代“奇怪的事情”,实际上可以有无限的
for
循环,但只要只使用“基本python”,就不会发生这种情况)