The rap against "while True:" loops

bartc bartc at freeuk.com
Sun Oct 11 17:51:49 EDT 2009


Mensanator wrote:
> On Oct 10, 3:15�pm, kj <no.em... at please.post> wrote:
>> I'm coaching a group of biologists on basic Python scripting. �One
>> of my charges mentioned that he had come across the advice never
>> to use loops beginning with "while True". �Of course, that's one
>> way to start an infinite loop, but this seems hardly a sufficient
>> reason to avoid the construct altogether, as long as one includes
>> an exit that is always reached. �(Actually, come to think of it,
>> there are many situations in which a bona fide infinite loops
>> (typically within a try: block) is the required construct, e.g.
>> when implementing an event loop.)
>>
>> I use "while True"-loops often, and intend to continue doing this
>> "while True", but I'm curious to know: how widespread is the
>> injunction against such loops? �Has it reached the status of "best
>> practice"?
>
> If you know this "exit that is always reached",
> why do you pretend not to know it by writing
> "while True"?

When I'm starting to code something I haven't yet fully worked out, it often 
starts with an infinite loop like this, until the body is coded and I've 
figured out how to escape from it.

At the end if may or may not be tidied up, depending on how much work it is 
to reconcile several possible break points into a single terminating 
condition to be place at one end, and whether that is likely to break or 
obfuscate a currently working program.

But if it's never going to be seen by the brigade who hate all break, exit, 
goto and multiple return statements, then I won't bother.

-- 
Bartc 




More information about the Python-list mailing list