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

Guido van Rossum guido at python.org
Fri May 30 21:09:25 CEST 2008


I'd be fine with adding '#' back to the formatting language for hex and oct.

On Thu, May 29, 2008 at 5:45 PM, Eric Smith
<eric+python-dev at trueblade.com> wrote:
> 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.
>
> _______________________________________________
> Python-3000 mailing list
> Python-3000 at python.org
> http://mail.python.org/mailman/listinfo/python-3000
> Unsubscribe:
> http://mail.python.org/mailman/options/python-3000/guido%40python.org
>



-- 
--Guido van Rossum (home page: http://www.python.org/~guido/)


More information about the Python-3000 mailing list