官术网_书友最值得收藏!

1.2 數字格式化輸出

在項目應用中,我們有時需要將數字格式化后輸出,并希望能對數字的位數、對齊、千分符等進行控制。

格式化輸出單個數字可以直接使用f前綴,示例(number_format.py)如下:


x = 1234.56789
print(f'0.2f format {x}: {x:0.2f}')
print(f'>10.1f format {x}: {x: >10.1f}')
print(f'<10.1f format {x}: {x: <10.1f}')
print(f'^10.1f format {x}: {x: ^10.1f}')
print(f', format {x}: {x: ,}')
print(f'0,.1f format {x}: {x: 0,.1f}')

執行py文件,輸出結果如下:


0.2f format 1234.56789: 1234.57
>10.1f format 1234.56789:     1234.6
<10.1f format 1234.56789: 1234.6    
^10.1f format 1234.56789:   1234.6  
, format 1234.56789:  1,234.56789
0,.1f format 1234.56789:  1,234.6

如果想使用指數記法,可將前綴f改成e或者E(取決于指數輸出的大小寫形式),示例(number_format.py)如下:


print(f'e format {x} is: {x: e}')
print(f'0.2E format {x} is: {x: 0.2E}')

執行py文件,輸出結果如下:


e format 1234.56789 is:  1.234568e+03
0.2E format 1234.56789 is:  1.23E+03

指定寬度和精度的一般形式是'[<>^]?width[,]?(.digits)?',其中width和digits為整數,?代表可選部分。同樣的格式可被用在字符串的format()方法中,輸出(number_format.py)如下:


print(f'The value is {x: 0,.2f}')

數字格式化輸出通常是比較簡單的。該技術同時適用于浮點數和decimal模塊中的Decimal數字對象。

當指定數字的位數后,利用round()函數對結果值進行四舍五入后再返回。示例(number_format.py)如下:


print(f'x format: {x: 0.1f}')
print(f'-x format: {-x: 0.1f}')

執行py文件,輸出結果如下:


x format:  1234.6
-x format: -1234.6

包含千分符的格式化與本地化沒有關系。如果需要根據地區來顯示千分符,則需要自己去調用locale模塊中的函數。我們可以使用translate()方法來交換千分符,示例(number_format.py)如下:


swap_separators = { ord('.'):',', ord(','):'.' }
print(format(x, ',').translate(swap_separators))

執行py文件,輸出結果如下:


1.234,56789

主站蜘蛛池模板: 寿阳县| 彩票| 徐水县| 周至县| 和林格尔县| 阿拉善右旗| 横峰县| 水城县| 宾川县| 扎赉特旗| 建德市| 广东省| 左云县| 山东省| 西充县| 青神县| 阜南县| 翁源县| 西峡县| 富宁县| 榆中县| 客服| 香格里拉县| 政和县| 固始县| 旅游| 德江县| 黄石市| 玛曲县| 乐陵市| 新平| 岳阳市| 依兰县| 台江县| 无锡市| 长治市| 太和县| 德阳市| 遵义县| 尖扎县| 定远县|