while True or while 1

A

Andrea Crotti

I see sometimes in other people code "while 1" instead of "while True".
I think using True is more pythonic, but I wanted to check if there is
any difference in practice.

So I tried to do the following, and the result is surprising. For what
I can see it looks like the interpreter can optimize away the 1 boolean
conversion while it doesn't with the True, the opposite of what I
supposed.

Anyone can explain me why is that, or maybe is my conclusion wrong?

def f1():
while 1:
pass

def f2():
while True:
pass

In [10]: dis.dis(f)
2 0 SETUP_LOOP 3 (to 6)

3 >> 3 JUMP_ABSOLUTE 39 RETURN_VALUE

In [9]: dis.dis(f1)
2 0 SETUP_LOOP 10 (to 13)6 POP_JUMP_IF_FALSE 12

3 9 JUMP_ABSOLUTE 316 RETURN_VALUE
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,767
Messages
2,569,571
Members
45,045
Latest member
DRCM

Latest Threads

Top