2012-05-31 33 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

相關問題