[Python-Dev] hex() and oct() still include the trailing L - change this in 2.6? (original) (raw)

Brett Cannon brett at python.org
Fri Nov 9 03🔞36 CET 2007


On Nov 8, 2007 6:05 PM, Gregory P. Smith <greg at krypto.org> wrote:

I thought the hell of stripping trailing Ls off of stringed numbers was gone but it appears that the hex() and oct() builtins still leave the trailing 'L' on longs:

Python 2.6a0 (trunk:58846M, Nov 4 2007, 15:44:12) [GCC 4.1.2 (Ubuntu 4.1.2-0ubuntu4)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> x = 0xffffffffc10025be >>> x 18446744072652596670L >>> str(x) '18446744072652596670' >>> hex(x) '0xffffffffc10025beL' >>> '0x%x' % (x) '0xffffffffc10025be' >>> oct(x) '01777777777770100022676L' This appears to be fixed in py3k (as there is no longer an int/long to distinguish). Can we at least get rid of the annoying L in 2.6?

It will break code, so probably not. Consider this motivation to move over to Python 3.0. =)

-Brett



More information about the Python-Dev mailing list