while True or while 1

Steve Holden steve at holdenweb.com
Sun Dec 12 13:31:34 EST 2010


On 12/12/2010 10:30 AM, Christian Heimes wrote:
> Am 12.12.2010 15:14, schrieb Max Countryman:
>> I'm sure this has been brought up many times, but a quick Googling didn't yield the decisive results I was hoping for, so I apologize if this has already been addressed in great detail somewhere else.
>>
>> I am wondering what the rationale is behind preferring while True over while 1? For me, it seems that using True provides more clarity, but is that the only benefit? Is while 1 more prone to errors?
> 
> In Python 2.x, "while 1" is slightly faster than "while True". The
> interpreter can't optimize "while True" because the name "True" can be
> bind to another value. In Python 3.x it's no longer possible to rebind
> the names True and False just like None in Python 2.x
> 
Would you care to quantify how much CPU time that optimization will
typically save for a loop of fair magnitude (say, a billion iterations)?

Python is designed to provide readable code. Writing

    while True:
        ...

is much more legible than its pre-True couterpart

    while 1:
        ...

and is, I'd say, therefore to be preferred (except in a code base
intended to compile on 2.2 and before).

regards
 Steve
-- 
Steve Holden           +1 571 484 6266   +1 800 494 3119
PyCon 2011 Atlanta March 9-17       http://us.pycon.org/
See Python Video!       http://python.mirocommunity.org/
Holden Web LLC                 http://www.holdenweb.com/




More information about the Python-list mailing list