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