[Python-ideas] Python reviewed

Chris Barker chris.barker at noaa.gov
Mon Jan 9 20:26:19 EST 2017


On Mon, Jan 9, 2017 at 5:12 PM, Simon Lovell <simon58500 at bigpond.com> wrote:

> Re: Counters starting at zero vs one, Fortran has a neat solution to this
> for arrays if not strings - allow the programmer to select the starting
> index.


I liked that back in the day, but I think it's really better if it's always
the same.

and see my other note for why the zero-based and open ended slicing is
fabulous -- indexing really needs to match slicing.

ONe more:

since you mentioned Fortran -- it's a common use-case for an array to model
some sort of regular spaced grid, so:

x = start_x + i*delta_x

really easy and logical math for figuring out where you are on a grid (and
the reverse calculation) -- this is a pain with 1-based indexing....

(of course, C does this for pointer math for the same reason...)

When I've programmed for loops in C, sometimes you want zero based and
> sometimes one based, while most times you don't really care. To make it
> readable I would wherever possible write either:
>     for (i=0;i<j;i++)
>     for (i=1;i<=j;i++)  // In both cases always executing j times
>

in pyton, you never right that code anyway. most of the time, it's

for item in sequence:

no indexes at all.

or:

for i in range(N):
  ...

indexes, but you dont care

or

for i, item in enumerate(seq):
    ...

or for item1, item2 in zip(sequence):
    ...

i.e you almost never care what the starting index is!

-CHB





> Rgds
>
> _______________________________________________
> Python-ideas mailing list
> Python-ideas at python.org
> https://mail.python.org/mailman/listinfo/python-ideas
> Code of Conduct: http://python.org/psf/codeofconduct/
>



-- 

Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/OR&R            (206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115       (206) 526-6317   main reception

Chris.Barker at noaa.gov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20170109/924ed869/attachment.html>


More information about the Python-ideas mailing list