[Python-Dev] typo in 8.1.3.1. Format Specification Mini-Language?
Terry Reedy
tjreedy at udel.edu
Thu May 7 21:35:11 CEST 2009
Neal Becker wrote:
> "format_spec ::= [[fill]align][sign][#][0][width][.precision][type]"
> "The precision is ignored for integer values."
>
> In [36]: '%3x' % 10
> Out[36]: ' a'
>
> In [37]: '%.3x' % 10
> Out[37]: '00a'
>
> Apparently, precision is _not_ ignored?
Apparent typo reports should go to the tracker, along with version
information. In this case, the Format Specification Mini-Language is
for the new str.format() and format() facilities, not for % formatting,
which is described in Old String Formatting Operations. Ironically, you
report does point to a doc problem: precision is actually not allowed
for integer types.
3.0.1
>> format(10, '3x')
' a'
>>> format(10, '.3x')
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
format(10, '.3x')
ValueError: Precision not allowed in integer format specifier
>>> '{0:3x}'.format(10)
' a'
>>> '{0:.3x}'.format(10)
Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
'{0:.3x}'.format(10)
ValueError: Precision not allowed in integer format specifier
http://bugs.python.org/issue5963
Terry Jan Reedy
More information about the Python-Dev
mailing list