問題
你需要將數字格式化後輸出,並控制数字的位數、對齊、千位分隔符和其他的細節。
解決方案
格式化輸出單個數字的時候,可以使用內建的format()函式,比如:
>>> x = 1234.56789
>>> # two decimal places of accuracy
>>> format(x, '0.2f')
'1234.57'
>>> # right justified in 10 chars, one-digit accuracy
>>> format(x, '>10.1f')
' 1234.6'
>>> # left justified
>>> format(x, '<10.1f')
'1234.6 '
>>> # centered
>>> format(x, '^10.1f')
' 1234.6 '
>>> # inclusion of thousands separator
>>> format(x, ',')
'1,234.56789'
>>> format(x, '0,.1f')
'1,234.6'
>>>
如果你想使用指數記法,將f改成e或者e(取決於指數輸出的大小寫形式)。比如:
>>> format(x, 'e')
'1.234568e+03'
>>> format(x, '0.2e')
'1.23e+03'
>>>
jonknpiq同時指定寬度和精度的一般形式是'[<>^]?width[,]?(.digits)?', 其中width和digits為整數,?代表可選部分。 同樣的格式也被用在www.cppcns.com字串的format()方法中。比如:
>>> 'the value is '.format(x)
'the value is 1,234.57'
>>>
討論數字格式化輸出通常是比較簡單的。上面演示的技術同時適用於浮點數和decimal模組中的decimal數字物件。
當指定數字的位數後,結果值會根據round()函式同樣的規則進行四捨五入後返回。比如:
>>> x
1234.56789
>>> format(x, '0.1f')
'1234.6'
>>> format(-x, '0.1f')
'-1234.6'
>>>
包含千位符的格式化跟本地化沒有關係。 如果你需要根據地區來顯示千位符jonknpiq,你需要自己去調查下locale模組中的函式了。 你同樣也可以使用字串的translate()方法來交換千位符。比如:
>>> swap_separators =
>>> format(x, ',').translate(swap_separators)
'1.234,567'
>>>
在很多python**中會看到使用%來格式化數字的www.cppcns.com,比如:
>>> '%0.2f' % x
'1234.57'
>>> '%10.1f' % x
' 1234.6'
>>> '%-10.1f' % x
'1234.6 '
>>>
這種格式化方法也是可行的,不過比更加先進的format()要差一點。 比如,在使用%操作符格式化數字的時候,一些特性(新增千位符)並不能被支援。
基礎教程 Python格式化字串(格式化輸出)
print 函式使用以 開頭的轉換說明符對各種型別的資料進行格式化輸出,具體請看下表。表 1 python 轉換說明符 轉換說明符 解釋 d i 轉換為帶符號的十進位制整數 o轉換為帶符號的八進位制整數 x x 轉換為帶符號的十六進製制整數 e轉化為科學計數法表示的浮點數 e 小寫 e轉化為科學計數...
格式化輸入數字 Python格式化輸出的三種方式
程式中經常會有這樣場景 要求使用者輸入資訊,然後列印成固定的格式 比如要求使用者輸入使用者名稱和年齡,然後列印如下格式 my name is my age is 很明顯,用逗號進行字串拼接,只能把使用者輸入的名字和年齡放到末尾,無法放到指定的 位置,而且數字也必須經過str 數字 的轉換才能與字串進...
Python 數字的格式化輸出
the value is format x the value is 1,234.57 需要將數字格式化後輸出,並控制数字的位數 對齊 千位分隔符和其他的細節。1.最簡單的控制小數字數 x 1234.56789 two decimal places of accuracy format x,0.2f...