2012-05-31 31 views
35

我想创建一个格式化的字符串与固定的大小和固定的位置之间的字段。一个例子解释更好,这里明显有3个不同的领域和字符串大小是固定的:如何在python中创建固定大小的格式化字符串?

XXX  123 98.00 
YYYYY  3 1.00 
ZZ   42 123.34 

我怎样才能在Python(2.7)采用这种格式的字符串?

回答

80

当然,请使用.format方法。例如,

print '{:10s} {:3d}  {:7.2f}'.format('xxx', 123, 98) 
print '{:10s} {:3d}  {:7.2f}'.format('yyyy', 3, 1.0) 
print '{:10s} {:3d}  {:7.2f}'.format('zz', 42, 123.34) 

将打印

xxx  123 98.00 
yyyy   3  1.00 
zz   42 123.34 

您可以根据需要调整字段大小。请注意,.format独立于print工作来格式化字符串。我只是用打印来显示字符串。简要说明:

10s格式有10位,留下了一个串由默认

3d格式的整数预留3个空间对齐,右默认

7.2f格式浮子正当的,保留7位,小数点后2位,默认为 右。

定位/格式化字符串有许多附加选项(填充,左/右对齐等),String Formatting Operations将提供更多信息。

+2

正是我在找的东西,谢谢! – anio

+4

注意:'7.2f'强制执行2的精度,但7只是_minimum_宽度。对于与格式不匹配的输入,您可能不会获得宽度7。即使12345.7只有7个字符,“{:7.2f}'。格式(12345.7)”的宽度为8. – jkmacc

+0

@jkmacc好点,谢谢你明确地说明了这一点(链接提供了更多的信息, ,以及顶端#4,但这是更明确/更容易:) – Levon

相关问题