On Wed, May 07, 2014 at 08:49:11PM -0700, Scott W Dunning wrote:
[...]
> > >>> greeting [len(greeting)]
> > 
> > It is trying to access the character at the position "11", where the 
> > string "Hello world" doesn't contain any value in the index "11" and 
> > the maximum index is 10. So it throws the following error.
> 
> I think this is where I am getting confused.  I guess I don’t 
> understand why/how it’s trying to access the character at the index 
> 11?

The value of greeting is "Hello world". So let's write it out, showing 
the index of each character. Remember that Python starts counting from 
zero, not one:

Index 0: H
Index 1: e
Index 2: l
Index 3: l
Index 4: o
Index 5: space
Index 6: w
Index 7: o
Index 8: r
Index 9: l
Index 10: d

So the indexes start from 0, and go up to 10. How many characters are 
there? Count them, and you get 11. Which makes sense: one character per 
index, there are at least ten indexes (1 through 10), plus one extra 
(index 0) makes 11. So the length of the string is 11, but the highest 
index is 10.

So greeting[0] gives "H", greeting[1] gives "e", greeting[2] gives "l", 
and so on, until you get to greeting[10] which gives "d", and 
greeting[len(greeting)] => greeting[11] which is an error.


-- 
Steven
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to