The rap against "while True:" loops

NiklasRTZ niklasro at gmail.com
Sun Oct 18 21:47:15 CEST 2009


Russ P. wrote:
> On Oct 10, 1:15pm, 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"?
>
> Never, ever use "while True". It's an abomination. The correct form is
> "while 1".

equivalently appears doable with for statement too, but not C-style for
(;;), however like this
from itertools import count
for a in (2*b in itertools.count() if b**2 > 3):
doThis()
sleep(5)
doThat()

best regards,
NR



More information about the Python-list mailing list