目录
- 问题
- 解决方案
- 讨论
问题
如果需要我们对数值进行格式化的输出,包括控制位数、对齐、千位分隔符等方式,有什么处理方案?
解决方案
对于一个单独的数值做格式化输出,直接使用内建的 format()
函数即可。
- 四舍五入保留两位小数
x = 1234.56789
print(format(x, '0.2f'))
- 右对齐、左对齐、居中
print(format(x, '>10.1f')) # 结果为: 1234.6
print(format(x, '<10.2f')) # 结果为: 1234.57
print(format(x, '^10.3f')) # 结果为: 1234.568
- 增加千位符
print(format(x, ',')) # 结果为: 1,234.56789
print(format(x, ',.1f')) # 结果为: 1,234.6
如果想要采用科学计数法,那么只需要将 f
更改为 e
或者 E
即可。
print(format(x, 'e')) # 结果为: 1.234568e+03
print(format(x, '.2E')) # 结果为: 1.23E+03
讨论
除了 format()
方法外,之前很多程序员也会采用 %
的方案,如
# 右对齐与左对齐
print('%10.1f' % x) # 输出: 1234.6
print('%-10.1f' % x) # 输出: 1234.6
虽然可用,但是不支持千位分隔符等操作,所以对比起更加现代化的 format()
方法,还是更为推荐后者。