我正在学习迭代器以及如何使用它们,并在此过程中提出了一个问题。是否有可能在迭代过程中回忆循环停止的位置(如果循环有一个中断条件得到满足),然后从召回的位置开始?我所说的一个例子是,我有这个代码:print("Range() Test")for i in range(10, 100, 10): if i == 60: print('Break Point') break print(i)for i in range(10, 100, 10): print(i)哪个应该运行并给你这样的东西:Range() Test1020304050Break Point102030405060708090我的第一个问题是:1)有没有办法回忆起休息发生的位置并从那里开始,而不是我笨拙的重新开始?我已经看到实例化,其中迭代在项目列表上,但无法找到一个示例/找出在开始/停止/步骤符号上使用 iter() 的功能示例。2)在进行研究时(我正在学习Python并进行大量的自我教学),我已经看到range()函数描述器既作为迭代器,也不作为迭代器,因此,如果有人对此有更明确的信息,则相反为了在我的示例中使用它而撕裂我一个新的,这将不胜感激。
2 回答

繁华开满天机
TA贡献1816条经验 获得超4个赞
这通常是糟糕的设计。如果您想从上次中断的地方继续,为什么要离开循环的安全性?您将破坏性活动包含在该条件块中。
print("Range() Test")
for i in range(10, 100, 10):
if i == 60:
print('Break Point')
print(i)
或者,根据需要保存尽可能多的状态,然后重新启动:
lower = 10
upper = 100
inc = 10
for i in range(lower, upper, inc):
if i == 60:
print('Break Point')
break
print(i)
old_i = i
for i in range(old_i, upper, inc):
print(i)
输出:
Range() Test
10
20
30
40
50
Break Point
60
70
80
90
添加回答
举报
0/150
提交
取消