Python字符串格式,代码差异

时间:2015-04-09 21:13:15

标签: python string formatting

您好我正在尝试理解字符串格式如何与float配合使用:

我试过了

>>> print("%s %s %s %s %-9.10f"%("this","is","monday","morning",56.3648))

它给出

的输出
this is monday morning 56.3648000000

但是,

>>> print("%s %s %s %s %10f"%("this","is","monday","morning",56.3648))

给出

的输出
this is monday morning  56.364800

造成差异的原因是什么?

1 个答案:

答案 0 :(得分:2)

The way the pattern strings are parsed%9.10f将(最小)字段宽度设置为9,精度设置为10,而%10f仅将 width 设置为10.我认为您打算写{{1}而不是:

%.10f

另外,请考虑使用the newer str.format formatting style。你的第一个例子将变成

In [4]: '%10f' % 56.3648 # width
Out[4]: ' 56.364800'

In [5]: '%.10f' % 56.3648 # precision
Out[5]: '56.3648000000'