[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