【发布时间】:2016-03-03 09:55:38
【问题描述】:
为什么下面的简单循环没有在循环结束时保存i 的值?
for i in range( 1, 10 ):
print i
i = i + 3
以上打印:
1
2
3
4
5
6
7
8
9
但它应该打印:
1
4
7
【问题讨论】:
-
为什么会这样呢?这完全违反直觉。
-
你的变量被设置在“for”中,打印出来然后你做加法。如果你想要那个输出,你应该“打印 i+3”
-
两票赞成主要基于意见?严重地?我没有看到基于此处的 anything 意见,除了 OP 对
for的工作方式有错误的意见,但问题本身有一个明确的答案。如果您认为这是一个糟糕/无用的问题,请投反对票。 -
@Andrey 从 C
for循环的角度思考,其中更改主体内的迭代变量也会更改迭代