【发布时间】:2022-01-14 16:14:39
【问题描述】:
假设我有一个类似的代码块,
for i in range(15):
print(i)
i+=5
我希望每次迭代的 i 值应该是 i = 0,5,10, ....
即使我在 for 循环的代码块中更改迭代器,该值也不会影响循环。
谁能解释里面发生的功能?
【问题讨论】:
-
为什么会这样?范围对象不知道变量已更改,它无法返回依赖于它的下一个值。
-
在每次迭代开始时,
for语句会为i分配一个新值。您可以在循环中使用i进行猴子操作,但它总是会从迭代器中重置为下一个值。 -
获得您想要的结果:
for i in range(0, 15, 5): print(i) -
我认为 OP 想要前 15 个 5 的倍数,而不是 5 的倍数小于 15。