2012-10-14 58 views
2

我已經在Python 3中編寫了這個程序,它需要一個CSV文件來查找特定狀態的最小和最大死亡率。需要字符串格式化幫助

我已經基本完成程序,並在外殼正確輸出,但我有一個問題:

  1. 不同國家有不同的字符長度在他們的名字和間距不正確,怎麼出來我是否使用字符串格式來使字符串空間均勻,而不管打印的字符數是多少?

以下是我有:

print ("\n", "Indicator      |", "Min     ", 
     "  | Max  ") 
print ("-----------------------------------------------------------------------------------------------") 

這是輸出:

enter image description here

它非常適用 「明尼蘇達州」,但對 「哥倫比亞特區」 沒有關係」 t格式均勻。

有什麼建議嗎?謝謝。

+0

閱讀:http://stackoverflow.com/questions/8450472/how-to-format-print-to-fixed-width-of-strings – NullUserException

+0

使用[日誌模塊](http://docs.python。 org/library/logging.html)而不是 – inspectorG4dget

回答

5

使用字符串作爲這裏所描述的格式:http://docs.python.org/release/3.1.5/library/string.html

例如爲:

print('{:20} | {:20} {:5.2f} | {:20} {:5.2f}'.format(title, states[statemin], minimum, states[statemax], maximum)) 

更換20永遠不會出現的最長的字符串。請注意,我假定最小值和最大值是浮點數,如果它們是字符串,則不能使用'{:x.yf}'表示法,而只能使用{:6}或類似的東西。

{:20}意味着20空格的字符用於字符串,即使它較短(它不會在截斷時間較長時)。 {:5.2f}表示5空格用於浮點數,其中2在小數點後面。

+0

所以:20是我假設的字符間距? .2f做什麼? – Goose

+0

做什麼:20做到了嗎?不要讓字符串超過20個字符? – Goose

+0

請參閱上面的編輯。 –