Question: ```
a = 0
b = 1
print a
print b
for i in range (102):
    c = a + b
    a = b
    b = c
    print c

print "The 103rd number is", c

```

I don't understand how the for statement works. I understand everything except how the program continues till the 103rd element and understands that it has to add the last two numbers to get the next number. I understand that a is equal to b and b is equal to c. 

Is it because after adding c, it changes the vales of a and b then goes back to the for statement? And that is where I am confused. What does the program do next?

Does it go back to the for statement to check which (term)/element this is to make sure it is less then 102. 

Also when I specify the range to be 102 does it do the action once and then 102 times more basically list the number 103 times) or does it do it 102 times)?

What I am basically asking is if I need to find the 103rd element why do i specify range=102, not range =103

Answer: 
There are infinite uses of the `for` statement, for in your case, it just does whatever in it for 102 times. So, **in your specific case**, the `for` statement does...

```
c = a + b
a = b
b = c
print c

c = a + b
a = b
b = c
print c

c = a + b
a = b
b = c
print c

# ... (99 more times)

```

and when it is done, the program finishes with `print "The 103rd number is", c`, which you know what is happening.
This line will repeat anything below it that is indented 102 times.

```
for i in range(102):

```