Looping [was Re: Python and the need for speed]

Terry Reedy 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
>> no-brainers.

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 mailing list