> A somewhat related comment about formatting of infs and nans: I think
> that a formatted nan should never include a sign, even when it's
> explicitly asked for.
I'm not so sure about this any more. Sometimes the role of an explicit
sign is to act as a binary operator or visual separator, when there's
something immediately preceding the float being formatted. In this case
one still wants the sign, even for nans.
For example:
>>> "{}{:+}".format(1, float('nan'))
'1+nan'
Also, the implementation is definitely easier this way. :-)