使用.format()用0填充负数

时间:2019-02-13 17:13:15

标签: python-3.x

我正在尝试将负数格式化为填充0。

问题是我在负号的左侧添加了0。

dac = -12
dac2 = 411
print('{:>07d}, {:>07d}'.format(dac, dac2))

结果:
>>> 0000-12, 0000411

我想要的是:
>>> -000012, 0000411

1 个答案:

答案 0 :(得分:2)

放下-1对齐方式说明符。这会将数字包括符号对齐到该列的右侧,其余部分用零填充。

在没有>的情况下,在符号和数字之间使用填充:

>

填充0的数字的默认对齐方式是>>> print('{:07d}, {:07d}'.format(dac, dac2)) -000012, 0000411 ,因此您也可以使它明确:

=

来自Format Specification Mini-Language section

  

>>> print('{:=07d}, {:=07d}'.format(dac, dac2)) -000012, 0000411
  强制将填充放置在符号(如果有)之后但在数字之前。这用于以“ +000000120”形式打印字段。此对齐选项仅对数字类型有效。当字段宽度紧前面为“ 0”时,它将成为默认值。

再往下

  

如果未给出明确的对齐方式,则在宽度字段前加零('=')字符可为数字类型启用符号可识别的零填充。这等效于对齐类型为'0'的{​​{1}}填充字符。