无法退出循环python 2.7。因为循环将永远持续下去
我不知道为什么,但下面的循环是无限的。我试着依次循环I和j,直到nxt和nyt。但是这个代码永远在循环,我不知道出路。附言:我不是计算机科学专业的学生,我仍在想,如果有任何帮助,我将不胜感激无法退出循环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:
#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”,就不会发生这种情况)