Looping [was Re: Python and the need for speed]
tjreedy at udel.edu
Sun Apr 16 13:07:05 EDT 2017
On 4/16/2017 11:35 AM, Michael Torrie wrote:
> On 04/16/2017 07:57 AM, bartc wrote:
>> But people just don't want it.
>> /That/ is what surprises me, when people reject things that to me are
Whereas to me, it is a no-brainer that we are better off *without*
multiple while/loop constructs.
> I simply don't care about these missing loop constructs.
I do ;-) I consider the current simplicity a feature.
> Python works
> great for what I use it for, and apparently works well for many people.
The great majority* of 'repetition with variation' is sequentially
processing items from a collection. Python does that nicely with 'for
item in collection: process(item)'. While-loops take care of everthing
*I grepped 3.6.1 .../lib/*.py with the REs '^ *while ' and '^ *for ',
recursing into subdirectories, including tests and a few packages in
site-packages. These got 1389 and 9842 hits respectively. I am opposed
to adding syntax to subdivide the 12% of looping using 'while'. (As a
note, '^ *while True' had 363 hits, about 1/4 of while loops.)
> I have yet to find a loop that I couldn't construct with Python's
> apparently-limited constructs.
For-loops, 'limited' to iterating through collections (iterables), cover
at least 80% of cases. While-loops + continue/break easily cover the
remaining cases of linear repetition. Branching repetition, as in naive
Fibonacci calculation and tree processing, is more easily done with
Terry Jan Reedy
More information about the Python-list