Win XP, Python 2.5.1 ======================== #!/usr/bin/env python #coding=utf-8
n = 10000000000 # 10 billion print "type of 10 billion is", type(n) n = 1000000000 # 1 billion print "type of 1 billion is", type(n) raw_input("press enter to continue") n = 10000000000 print type(n) while True: if type(n) == long: n -= 1000000 print n, type(n) else: break print n print type(n), 'HERE' ========================== As an exercise in using type() I was thinking I could use it to begin to find where (without looking it up) a long becomes an int. I show that the boundary is somewhere between 10 billion and 1 billion. But the above script never ends--never gets to 'HERE'. Here's part of the output: 6000000 <type 'long'> 5000000 <type 'long'> 4000000 <type 'long'> 3000000 <type 'long'> 2000000 <type 'long'> 1000000 <type 'long'> 0 <type 'long'> -1000000 <type 'long'> -2000000 <type 'long'> -3000000 <type 'long'> -4000000 <type 'long'> -5000000 <type 'long'> -6000000 <type 'long'> Note that it shows even 1 million and 0 to be longs, whereas >>> type(1000000) <type 'int'> >>> type(0) <type 'int'> >>> What's going on? Thanks, Dick Moores _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor