对于您的特定示例,这将起作用:for i in range(1, 10): if i in (5, 6): continue但是,使用while循环可能会更好:i = 1while i < 10: if i == 5: i = 7 # other code i += 1甲for环分配一个变量(在这种情况下i/在每次迭代开始时)到下一个元素列表中的迭代。这意味着无论您在循环内做什么,i都将成为下一个元素。该while循环有没有这样的限制。
为什么问题循环无法按预期工作的更多背景知识。一个循环for i in iterable: # some code with i是基本的速记iterator = iter(iterable)while True: try: i = next(iterator) except StopIteration: break # some code with i因此,for循环从一个由迭代器构成的迭代器中提取值,并自动识别该迭代器何时用尽并停止。正如你所看到的,在每次迭代while循环我被重新分配,因此值i将被覆盖,无论您在发出任何其他的重新分配的# some code with i一部分。因此,forPython中的循环不适合对循环变量进行永久性更改,因此您应该采用while循环,正如Volatility的答案中已经证明的那样。