Suppose I have a code block like,
for i in range(15):
print(i)
i =5
I expect the i value at each iteration should be i = 0,5,10, ....
Even though I am changing the iterator inside the code block of for loop, the value is not affecting the loop.
Can anyone explain the functionality happening inside?
CodePudding user response:
Here, you're defining i
as a number from 0
to 14
everytime it runs the new loop. I think that what you want is this:
i = 0
for _ in range(15):
print(i)
i = 5
CodePudding user response:
A for
loop is like an assignment statement. i
gets a new value assigned at the top of each iteration, no matter what you might do to i
in the body of the loop.
The for
loop is equivalent to
r = iter(range(15))
while True:
try:
i = next(r)
except StopIteration:
break
print(i)
i = 5
Adding 5 to i
doesn't have any lasting effect, because i = next(r)
will always be executed next.