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

Brett Cannon brett at python.org
Fri Nov 9 03:18: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