[Python-3000] PEP 3101 str.format() equivalent of '%#o/x/X'?

Eric Smith eric+python-dev at trueblade.com
Fri May 30 02:45:46 CEST 2008


wesley chun wrote:
> On 5/29/08, Eric Smith <eric+python-dev at trueblade.com> wrote:
>> Marcin 'Qrczak' Kowalczyk wrote:
>>> Except that it works incorrectly for negative numbers.
> 
> wow, that is a great point.  i didn't think of this either. it makes
> it very inconvenient (see below) and makes it more difficult to say
> we've completed replaced the '%' operator.
> 
> 
>>  I can't really think of any other way that doesn't involve converting the
>> number to a string and then operating on that, just to get the sign.
> 
> here's one way of doing it without converting to a string first (it's ugly too):
> 
>>>> i = -45
>>>> '{0}0x{1:x}'.format('-' if i < 0 else '', abs(i))
> '-0x2d'

Agreed, ick!

> thx for putting it (back) in,

I didn't say I would, I said I would if a decision was reached :)  I'd 
like to see some more consensus, and I hope that Talin (the PEP author) 
chimes in.

Eric.



More information about the Python-3000 mailing list