在正数之前附加一个加号

Łuk*_*iba 2 python python-3.x

我想在数字之前加一个加号.我已经在使用格式说明符:

"{0:+03f}".format(x)
Run Code Online (Sandbox Code Playgroud)

我也听说过这两个,但我不知道如何使用它们:

"%+d" or "%+f"
Run Code Online (Sandbox Code Playgroud)

我的第一个问题是格式后的数字是浮点型.

例如,我正在制作一个小程序来计算二次函数,我不满意这样的输出:

f(x) =  2x^2+2.000x-4.000000
Run Code Online (Sandbox Code Playgroud)

那些零使它看起来很奇怪.

如果不是上面的话,有什么解决方案可以在没有任何东西的情况下摆脱零,但在点之后只有零吗?

NPE*_*NPE 5

也许%g你正在寻找什么?

>>> '%+g' % 2.
'+2'
>>> '%+g' % 2.1
'+2.1'
>>> '%+g' % 2.10001
'+2.10001'
Run Code Online (Sandbox Code Playgroud)

确切的定义%g如下:

一般格式.对于给定的精度p> = 1,这将数字舍入为p有效数字,然后根据其大小以定点格式或科学计数形式对结果进行格式化.

精确的规则如下:假设用表示类型'e'和精度p-1格式化的结果将具有指数exp.然后,如果-4 <= exp <p,则使用表示类型"f"和精度p-1-exp格式化数字.否则,使用表示类型"e"和精度p-1格式化数字.在这两种情况下,从有效数字中删除无关紧要的尾随零,如果后面没有剩余数字,则也会删除小数点.

无论精度如何,正负无穷大,正零和负零以及nans分别被格式化为inf,-inf,0,-0和nan.

精度0被视为等于1的精度.默认精度为6.

(来源.)

format():相似

>>> '{0:+g}'.format(2.)
'+2'
>>> '{0:+g}'.format(2.1)
'+2.1'
>>> '{0:+g}'.format(2.1001)
'+2.1001'
Run Code Online (Sandbox Code Playgroud)