[Python-Dev] [format] Restrict fill characters for numerical values
eric at trueblade.com
Wed Nov 11 15:11:48 CET 2009
Stefan Krah wrote:
> Eric Smith <eric at trueblade.com> wrote:
>> Stefan Krah wrote:
>>> I think http://www.python.org/dev/peps/pep-3101/ is too liberal with the
>>> choice of fill characters for numerical values. As far as I can see, this
>>> is quite legal:
>>> Python 2.7a0 (trunk:76132M, Nov 6 2009, 15:20:35)
>>> [GCC 4.1.3 20080623 (prerelease) (Ubuntu 4.1.2-23ubuntu3)] on linux2
>>> Type "help", "copyright", "credits" or "license" for more information.
>>>>> >from decimal import *
>>>>>> format(Decimal(4), "9<10")
>>>>>> format(Decimal(4), "9>10")
>>>>>> format(Decimal(4), "->2")
>>> I propose to disallow digits and '+-' fill characters for numerical values,
>>> except for the combination '0, left-padding'. Actually, I'd prefer to allow
>>> only whitespace and '0, left-padding'.
>> What problem are you trying to prevent that would justify the extra code
>> to implement this and the extra documentation to explain it?
> I simply think that apart from rounding, the output of format should not
> change the numerical value of its argument. The format functions in C do
> not allow this to happen. Are there other languages where this is possible?
I don't know if there are other languages that allow it. But I
definitely have use cases for padding with '*', for example. I don't see
the point in just disallowing numbers 1 through 9. If you don't want
your numbers padded with 9's, don't put a 9 in your format string.
More information about the Python-Dev