我很难挣脱出循环。这是我的密码
while (True):
if (dem_arr[randx, randy] > -100):
ticker = 0
while stack:
x, y = stack.pop()
mask[x, y] = True
for dx, dy in neighbors:
nx, ny = x + dx, y + dy
print ticker
if (0 <= nx < dem_arr.shape[0] and 0 <= ny < dem_arr.shape[1] and dem_arr[x, y] > -100 and dem_arr[nx, ny] > -100 and not mask[nx, ny] and abs(dem_arr[nx, ny] - dem_arr[x, y]) <= 1): #set elevation differnce
stack.append((nx, ny)) #if point is selected (true) array position gets added to stack and process runs over again
if ((nx, ny) not in counterStack):
counterStack.append((nx, ny))
dem_copy[(nx, ny)] = 8888
if (ticker >= 121):
print 'ticker ticked'
#if in this for loop need to break out of while stack:
else:
ticker += 1
else:
print '!chosen has no data!'
randx = random.randint(0, row-1) #array begins at position 0,0
randy = random.randint(0, col-1)
continue我需要做的是,if (ticker >= 121):被输入,我需要突破while stack:和while(True).,对如何做到这一点有什么想法吗?
发布于 2014-04-07 22:31:02
考虑一下已经提出的意见。另外,考虑一下while循环。而True:本质上是一个无限循环。您可以从函数中返回到调用方,您可以中断与循环相同的级别,或者用一个表达式替换True,该表达式在适当的条件下启动为True。
编辑:您不再使用Java或C语言编程了。没有必要在"True“旁边加上括号。-或其他条件。
https://stackoverflow.com/questions/22924087
复制相似问题