string formatting with mapping & '*'... is this a bug?

Pierre Fortin pfortin at pfortin.com
Thu Sep 9 14:06:49 EDT 2004


Hi!

"Python Essential Reference" - 2nd Ed, on P. 47 states that a string
format can include "*" for a field width (no restrictions noted); yet...

>>> "%*d" % (6,2)  # works as expected
'     2'

Now, with a mapping....

>>> mapping = {'one':1,'two':2}

These work as expected...

>>> "%(two)d" % mapping
'2'
>>> "%(two)6d" % mapping
'     2'

Attempting to specify a field width via '*' to a mapping fails....

>>> "%(two)*d" % (mapping,6)
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
TypeError: format requires a mapping
>>> "%(two)-*d" % (6,mapping)
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
TypeError: format requires a mapping

Am I expecting too much...?

Pierre




More information about the Python-list mailing list