.format won't display my value with 2 decimal places: Why?

Ian Kelly ian.g.kelly at gmail.com
Mon Jan 25 12:31:52 EST 2016


On Mon, Jan 25, 2016 at 10:19 AM, MRAB <python at mrabarnett.plus.com> wrote:
>
>
> On 2016-01-25 16:51:36, "Ian Kelly" <ian.g.kelly at gmail.com> wrote:
>
>>
>> Why doesn't str.format raise an exception when passed extra positional
>> arguments?
>>
> That format string uses auto-numbering, and it's equivalent to 'The new
> price is {0:.2f}'.
>
> In general, the positional arguments can be used in any order, and there can
> also be keyword arguments, so it would need to remember which arguments had
> been used. Would it be worth it?
>
> Do you really want to insist that the format string always used _all_ of the
> arguments?

Good point, that makes sense. For example, I would expect this to work:

'{0} {2}'.format(*some_list)

as long as some_list has three elements. I wouldn't expect it to fail
just because the middle element is unused, so why should it fail if
there are trailing elements that are unused?



More information about the Python-list mailing list