On 18Dec2016 16:21, BartC <b...@freeuk.com> wrote:
On 18/12/2016 10:59, Paul Götze wrote:
there is a nice short article by E. W. Dijkstra about why it makes sense
to start numbering at zero (and exclude the upper given bound) while
slicing a list. Might give a bit of additional understanding.
http://www.cs.utexas.edu/users/EWD/ewd08xx/EWD831.PDF
(This from somebody who apparently can't use a typewriter?!)
I don't know if the arguments there are that convincing. Both lower
bounds of 0 and 1 are useful; some languages will use 0, some 1, and
some can have any lower bound.
0 makes a lot of arithmetic simpler if you think of the index as the offset
from the start of the array/list.
But a strong argument for using 1 is that in real life things are
usually counted from 1 (and measured from 0).
Shrug. Yep. But again, if you visualise the index as an offset (== "measure")
it is a natural fit.
Another little anomaly in Python is that when negative indices are used, it
suddenly switches to 1-based indexing! Or least, when -index is considered:
Not if you consider it to count from the range end. So range 0:5 (which in
Python includes indices 0,1,2,3,4); index -1 places you at 5-1 ==> 4, which is
consistent. Again, this makes a lot of the arithmetic simpler.
See sig quote for another example of a python style range: birth to death.
Cheers,
--
Cameron Simpson <c...@zip.com.au>
There's no need to worry about death, it will not happen in your lifetime.
- Raymond Smullyan
--
https://mail.python.org/mailman/listinfo/python-list