如何格式化带有宽度和文字的字符串?

时间:2019-01-11 02:44:25

标签: python python-2.7

我有一个采用浮点数的Python(2.7)代码,使用千位分隔的逗号和3个小数位对其进行格式化,然后在其后加上字符串“ sec”。

然后通过左对齐并设置20的宽度来进一步格式化结果:

num = '{:,.3f} sec'.format(1200300.4443333333)
print '{:<20}'.format(num) + 'more'

输出:

1,200,300.444 sec   more

我想将其压缩为一个format调用,但是我不知道如何正确地使用字符串文字的宽度。

我尝试了以下操作:

num = '{:,.3f}'.format(1200300.4443333333)
print '{:<20} sec'.format(num) + 'more'

但是输出不一样:

1,200,300.444        secmore

我还尝试了以下方法:

num = '{:,.3f}'.format(1200300.4443333333)
print '{:<20 sec}'.format(num) + 'more'

但是失败了:

Traceback (most recent call last):
  File "test.py", line 8, in <module>
    print '{:<20 sec}'.format(num) + 'more'
ValueError: Invalid conversion specification

有什么方法可以将初始代码压缩为单个format调用?

1 个答案:

答案 0 :(得分:-2)

不确定是否是,但是以下代码可能是您想要的:

num = '{:<20,.3f} sec more'.format(1200300.4443333333)
print(num)

# 1,200,300.444          sec more