Loop with else clause

Peter Otten __peter__ at web.de
Tue Feb 5 03:43:54 EST 2019


DL Neil wrote:

> What is the pythonic way to handle the situation where if a condition
> exists the loop should be executed, but if it does not something else
> should be done?

> Possible solution:
> To make anything more than the trivial case readable, I think I'd put
> the list processing into one function, and the exception into another
> (except that this case is so trivial), ie
> 
> if list:
>     process_list() #the heading and for-loop, as above
> else:
>     print( "Sorry...
> 
> 
> Others wanted to add a semaphore/flag inside the loop to indicate if it
> was executed at least once. Yes, could even use the else clause then!

An argument in favour of the flag is that it works with arbitrary iterables 
whereas if ...: fails:

>>> numbered = enumerate([])
>>> if numbered:
...     print("the winners are")
...     for ix in numbered: print(*ix)
... 
the winners are
 
> The ideas went (rapidly) down-hill from there...
> 
> 
> Is there another, more pythonic, approach to conditional (for/while)
> loop processing?

I'm not aware of such an approach.



More information about the Python-list mailing list