我有:
for i in range(2,n): if(something): do something else: do something else i = 2 **restart the loop
但这似乎不起作用.有没有办法重新启动该循环?
谢谢
您可能需要考虑使用该逻辑适用的不同类型的循环,因为它是最明显的答案.
也许是:
i=2 while i < n: if something: do something i += 1 else: do something else i = 2 #restart the loop
i
从循环内更改索引变量不太可能达到预期效果.您可能需要使用while
循环,并自己控制循环变量的递增.每次for
循环,i
都会重新分配下一个值range()
.所以类似于:
i = 2 while i < n: if(something): do something else: do something else i = 2 # restart the loop continue i += 1
在我的示例中,continue
语句跳回到循环的顶部,跳过该i += 1
迭代的语句.否则,i
按照您的预期递增(与for
循环相同).