[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