Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中重新启动for循环的迭代_Python_Python 2.7 - Fatal编程技术网

在python中重新启动for循环的迭代

在python中重新启动for循环的迭代,python,python-2.7,Python,Python 2.7,如果收到异常,我希望重新启动迭代。(…它正在从服务器读取数据,偶尔会收到间歇性错误代码,重试时不会重复) 如果我使用的是while循环,这类事情显然是显而易见的(例如,不要增加数字),但鉴于我在for循环中对行进行迭代,我想不出强制重新执行当前迭代的方法 尽管有很多类似的标题帖子(例如,,),但我发现/读到的每一篇帖子似乎都有不同的目的(例如,在文章结束时如何重新启动,而不是在出现某种情况时重新启动迭代) [Python 2.7]您可以添加第二个循环,如下所示: for row in r:

如果收到异常,我希望重新启动迭代。(…它正在从服务器读取数据,偶尔会收到间歇性错误代码,重试时不会重复)

如果我使用的是while循环,这类事情显然是显而易见的(例如,不要增加数字),但鉴于我在for循环中对行进行迭代,我想不出强制重新执行当前迭代的方法

尽管有很多类似的标题帖子(例如,,),但我发现/读到的每一篇帖子似乎都有不同的目的(例如,在文章结束时如何重新启动,而不是在出现某种情况时重新启动迭代)


[Python 2.7]

您可以添加第二个循环,如下所示:

for row in r:
   while True:
       do stuff
       if error:
           continue
       else:
           break

因为for循环会在上循环,所以不能回放for循环的迭代。迭代器只能前进到下一个位置。像你在问题中所说的那样使用while循环有什么错?为什么while不是一个选项?@iCodez和Padraic-看到使用for循环(我假设会有)不容易做到这一点,最简单的答案可能是切换到while(…只是稍微复杂一点/没有希望的那么整洁,但仍然可能是最好的解决方案)我不理解这种逻辑。假设我们在第一行,我们进入while循环。下一步做什么,在这种情况下有一个错误。我们继续,这将带我们到while循环的下一个迭代。没有任何变化,我们继续在第一行做什么,每次都会出错。这不会重置外部for循环。这是不应该的o推进外部循环。OP正在联系服务器-如果出现网络错误,必须再次联系服务器。
for row in r:
   while True:
       do stuff
       if error:
           continue
       else:
           break