Last Updated on 2021-08-23 by Clay
不論是在什麼語言中,將程式運行結果整齊地輸出都是必不可少的步驟,有鑑於近來使用 Python 做資料分析越來越普遍,我也越來越常翻看自己過去的程式碼,好複習到底該如何在該死的輸出面前補上幾個整齊的 0,最後終於決定整理一篇簡單的格式化輸出,一勞永逸地解決自己的問題。
以下,分別會針對使用 {} 和 % 這兩種格式化字串的方法去紀錄。不過官方建議是使用 {} 來格式化字串,畢竟格式清楚且比 % 擁有更彈性的填充方法,比方說多次填入。
前面補零的方法
使用 zfill() 替字串補零
要注意的是,這個方法只適用於字串,如果要用於數值,需要先轉成字串才行。然後 zfill()
內填入想要補齊的位數,比方說我想要補到 5 位:
a = '777' print(a.zfill(5))
Output:
00777
使用 format() 補零輸出
這個方法就不限數值型態還是字串了。同樣地,那個 5 為我想要補齊的位數。
a = 777 print('{0:05d}'.format(a))
Output:
00777
使用 % 補零輸出
這個方法同樣可以用於數值,跟 format()
的使用方法大同小異。
a = 777 print('%05d' % a)
Output:
00777
取小數特定位數
使用 round() 四捨五入取小數特定位數
round()
需要輸入兩個值,前者為要四捨五入的值,後者為要取的小數位數。
a = 3.1415926 print(round(a, 4))
Output:
3.1416
使用 format() 四捨五入取小數特定位數
a = 3.1415926 print('{:.4f}'.format(a))
Output:
3.1416
使用 % 四捨五入取小數特定位數
a = 3.1415926 print('%.4f' % a)
Output:
3.1416
References
- https://stackoverflow.com/questions/339007/how-to-pad-zeroes-to-a-string
- https://stackoverflow.com/questions/39402795/how-to-pad-a-string-with-leading-zeros-in-python-3/39402910