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

时间:2018-03-10 03:41:36

标签: python function asynchronous

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

我的代码:

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 个答案:

答案 0 :(得分:1)

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

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
About to restart the loop at index:  3
4
5

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