这个问题在这里已经有一个答案:>
Scope of python variable in for loop7个
我试图做一些简单的事情来改变我正在迭代的变量(i),但是我在Python和C中都有不同的行为.
我试图做一些简单的事情来改变我正在迭代的变量(i),但是我在Python和C中都有不同的行为.
在Python中,
for i in range(10): print i,if i == 2: i = 4;
我得到0 1 2 3 4 5 6 7 8 9,但相当于C:
int i; for (i = 0; i < 10; i++) { printf("%d",i); if (i == 2) i = 4; }
我得到01256789(注意,如预期的那样,数字3和4不会出现).
这里发生了什么
解决方法
你没有做你认为的事情.
例如:
例如:
for i in range(10):
将不断设定我是0-10范围内的下一个元素,无论什么.
如果你想在python中做同样的事情你会做:
i = 0 while i < 10: print(i) if i == 2: i = 4 else: # these line are i += 1 # the correct way i += 1 # note that this is wrong if you want 1,2,4,5,6,7,8,9
如果您尝试将其转换为C,那么您必须记住,在for循环中的我将永远添加到我.