Heres the python code im having problems with:
for i in range (0,10):
if i==5:
i+=3
print i
I expected the output to be:
0
1
2
3
4
8
9
however the interpreter spits out:
0
1
2
3
4
8
6
7
8
9
I know that a for loop creates a new scope for a variable in C, but have no idea about python. Can anyone explain why the value of i doesnt change in the for loop in python and whats the remedy to it to get the expected output.
解决方案
The for loop iterates over all the numbers in range(10), that is, [0,1,2,3,4,5,6,7,8,9].
That you change the current value of i has no effect on the next value in the range.
You can get the desired behavior with a while loop.
i = 0
while i < 10:
# do stuff and manipulate `i` as much as you like
if i==5:
i+=3
print i
# don't forget to increment `i` manually
i += 1