"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?
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?
That section is talking about this:
format(10, '.3x')
Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: Precision not allowed in integer format specifier
Eric Smith wrote:
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?
That section is talking about this:
format(10, '.3x')
Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: Precision not allowed in integer format specifier
So I guess it shouldn't say "is ignored", it should be "is not allowed".
Eric Smith wrote:
Eric Smith wrote:
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?
That section is talking about this:
format(10, '.3x')
Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: Precision not allowed in integer format specifier
So I guess it shouldn't say "is ignored", it should be "is not allowed".
My exact suggestion in http://bugs.python.org/issue5963
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