Python code - missunderstanding : guys
a few days ago I bought a book called "Python for kids" (for dummies).
On page 47 there is an example of a simple code and its result as follows:

    a = 2
    while a < 10:
        a = a + 1
        print (a)

resulting in:

3
4
5
6
7
8
9
10

...............................................

I think this result is incorrect, because:
- There is no 2 printed out as declared in the first line of the code
- There is though 10 printed out (10 is equal 10, not less than 10)

Even if I make the 'while' condition: a <= 10, it prints out the numbers 3 to 11 which is again incorrect. 

What I think should be the correct code is as follows:

    a = 2
    while a < 10:
        print (a)
        a = a + 1

resulting in:

2
3
4
5
6
7
8
9

...............................................

Now this is what I was expecting from the code. I played a little bit with the code and interestingly enough Python allows some strange arrangements which are executable without errors yet totally incorrect! For example:

    a = 2
    while a < 30:
        a = a + 5
    print (a)

result is only the number: 
32 
(incorrect it seems to be)
If I indent |print (a)| (by 4 spaces) I get:

7
12
17
22
27
32

Incorrect again. Can you explain to me why all this happens like that?