在python中调用函数时断开循环

Break out of loop while calling function in python

我有一个名为evaluate的函数,它是一个需要时间才能完成的函数。 然后它恢复循环,跳过该迭代:

我的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
array = []#some huge array containing different ways of expressing greetings

def main(resumeLocation):
    for a in range(len(array)):
        i = array[a]
        if a < resumeLocation:
            continue
        else:
            if (i =="Hello")
                answer(i, a)
                break

def answer(input, resumeLocation):
    # process answer
    resumeLoop(resumeLocation)

现在,为了使函数不被无限循环,我需要跳过我处理答案的迭代,所以我需要打破循环,调用该函数,然后恢复循环,但是,我似乎无法弄清楚如何 去做这个。

任何建议都有帮助。

谢谢


正如一些评论所提到的那样,我相信有更好的方法可以做到这一点,但是如果你真的想要开始循环,你可以尝试这种方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
arr = [1,2,3,4,5]

def answer(x, y, arr):
  print('About to restart the loop at index: ', x+1)
  loop(x+1, arr)

def loop(i, arr):
  for x in range(i, len(arr)):
    t = arr[x]
    print(t)
    if t == 3:
      answer(x, t, arr)
      break

loop(0, arr)

满足条件时,将调用answer()并且循环中断,但是保留当前索引,然后当answer完成时,使用正确的起始索引调用该函数。 此代码的输出如下:

1
2
3
4
5
6
1
2
3
About to restart the loop at index:  3
4
5

它正确地重新启动下一个索引的循环。