Python 如何使用宽度和文字设置字符串格式?

Python 如何使用宽度和文字设置字符串格式?,python,python-2.7,Python,Python 2.7,我有Python2.7代码,它接受一个浮点,用千个分隔的逗号和3个小数位对其进行格式化,然后添加字符串文字sec 然后将结果向左对齐,并给出20: num='{:,.3f}sec'.format1200300.4443333 打印“{:不确定是否是,但以下代码可能是您所要的: num = '{:<20,.3f} sec more'.format(1200300.4443333333) print(num) # 1,200,300.444 sec more 我不认为一次

我有Python2.7代码,它接受一个浮点,用千个分隔的逗号和3个小数位对其进行格式化,然后添加字符串文字sec

然后将结果向左对齐,并给出20:

num='{:,.3f}sec'.format1200300.4443333
打印“{:不确定是否是,但以下代码可能是您所要的:

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

# 1,200,300.444          sec more

我不认为一次调用format就可以解决这个问题。@DYZ,除非您使用ljust,但这是一种变通方法。在一个语句中不可能做到这一点,因为您希望将20宽度应用于整数+字符串。最好的方法是嵌套的format调用,如print{:不是OP想要的输出。让OP来决定吧?这是一条非常简单的线,可能会达到他们的目标。没有千位分隔符,这里的间距都错了。千位分隔符很容易添加。也许让提问的人来决定间距是否适合他们,只有他/她知道他们是否可以灵活使用。这是obv这是一个稍微修改过的输出,但是由于它满足了一行的需求,它可能适合询问者的需求。即使它不满足,它也可能帮助其他人稍后阅读此页面。
1,200,300.444        secmore
Traceback (most recent call last):
  File "test.py", line 8, in <module>
    print '{:<20 sec}'.format(num) + 'more'
ValueError: Invalid conversion specification
num = '{:<20,.3f} sec more'.format(1200300.4443333333)
print(num)

# 1,200,300.444          sec more