Python實現數字的格式化輸出

2022-10-04 13:51:40 字數 1733 閱讀 8674

問題

你需要將數字格式化後輸出,並控制数字的位數、對齊、千位分隔符和其他的細節。

解決方案

格式化輸出單個數字的時候,可以使用內建的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...