Tiger12506 wrote: >> I am new to Python but not new to programming languages. I have seen this >> "while 1" a lot. In fact in other languages I would expect "while 1" to >> be >> the same as "while TRUE".
The predefined constants True and False were not added to Python until version 2.3. Before that it was common to write 'while 1'. In fact 'while 1' is more efficient, too. Compare: In [5]: dis.dis(compile('while 1: pass', '', 'exec')) 1 0 SETUP_LOOP 3 (to 6) >> 3 JUMP_ABSOLUTE 3 >> 6 LOAD_CONST 0 (None) 9 RETURN_VALUE In [6]: dis.dis(compile('while True: pass', '', 'exec')) 1 0 SETUP_LOOP 12 (to 15) >> 3 LOAD_NAME 0 (True) 6 JUMP_IF_FALSE 4 (to 13) 9 POP_TOP 10 JUMP_ABSOLUTE 3 >> 13 POP_TOP 14 POP_BLOCK >> 15 LOAD_CONST 0 (None) 18 RETURN_VALUE 'while 1' is optimized to just a jump - the compiler recognizes that the test is not needed and skips it. 'while True' requires looking up the value of the name 'True' and testing it. Old habits die hard, especially when they are more efficient and require less typing :-) Kent _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor