while True or while 1
Andrea Crotti
andrea.crotti.0 at gmail.com
Mon Jan 23 15:50:11 EST 2012
On 01/23/2012 06:05 PM, Evan Driscoll wrote:
>
> To play devil's advocate for a moment, if you have the choice between
> two ways of writing something, A and B, where both are basically the
> same in terms of difficulty to write, difficulty to maintain, and
> difficulty to understand, but A is faster than B, even if just by a
> hair, why NOT write A?
>
> It's like 'iter++' vs '++iter' in a C++ for loop. For ints, or for
> some iterators with optimization, it makes no difference. But the
> latter will be faster in debug builds, and *might* be faster in
> release builds if you have a complicated iterator. So why NOT make
> for(...; ...; ++i) the typical way of writing a for loop?
>
> In the Python world, is 'while 1' any harder to understand than 'while
> True'? I'm about as staunch a supporter as you'll find for the idea
> that 'while 1' should throw an exception, and even *I* think that
> 'while 1' is about the least-offensive idiom out there. If 'while 1'
> throws you off, I'd hate to see what you do when you learn that Python
> accepts loops like 'while x' where the condition evaluates to true if
> x is a non-zero integer and false if x is 0.
>
>
> All that said, I like the 'while "stuff to do"' idea.
>
> Evan
I think it's not the same, iter++ or ++iter is exactly the same in terms
of readability, so of course
if one might be a bit faster, it should be used.
while 1 works because the 1 is converted to boolean automatically, but
why not just writing a boolean
in the first place?
It's not bad of course but to me it's not very Pythonic, and reminds me C.
At that point I also prefer the "while 'might be long loop'" idea, which
at least
adds some value *and* it might be very slightly faster too.
More information about the Python-list
mailing list