Python实现数字的格式化输出


Posted in Python onAugust 01, 2020

问题

你需要将数字格式化后输出,并控制数字的位数、对齐、千位分隔符和其他的细节。

解决方案

格式化输出单个数字的时候,可以使用内置的 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'
>>>

同时指定宽度和精度的一般形式是 '[<>^]?width[,]?(.digits)?' , 其中 width digits 为整数,?代表可选部分。 同样的格式也被用在字符串的 format() 方法中。比如:

>>> 'The value is {:0,.2f}'.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'
>>>

包含千位符的格式化跟本地化没有关系。 如果你需要根据地区来显示千位符,你需要自己去调查下 locale 模块中的函数了。 你同样也可以使用字符串的 translate() 方法来交换千位符。比如:

>>> swap_separators = { ord('.'):',', ord(','):'.' }
>>> format(x, ',').translate(swap_separators)
'1.234,56789'
>>>

在很多Python代码中会看到使用%来格式化数字的,比如:

>>> '%0.2f' % x
'1234.57'
>>> '%10.1f' % x
'  1234.6'
>>> '%-10.1f' % x
'1234.6  '
>>>

这种格式化方法也是可行的,不过比更加先进的 format() 要差一点。 比如,在使用%操作符格式化数字的时候,一些特性(添加千位符)并不能被支持。

以上就是Python实现数字的格式化输出的详细内容,更多关于Python 数字格式化输出的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
从零学python系列之数据处理编程实例(二)
May 22 Python
Python中的自定义函数学习笔记
Sep 23 Python
Python脚本实时处理log文件的方法
Nov 21 Python
浅析PHP与Python进行数据交互
May 15 Python
浅谈Pycharm调用同级目录下的py脚本bug
Dec 03 Python
python实现点击按钮修改数据的方法
Jul 17 Python
django使用admin站点上传图片的实例
Jul 28 Python
Numpy的简单用法小结
Aug 28 Python
Python 使用 Pillow 模块给图片添加文字水印的方法
Aug 30 Python
pycharm双击无响应(打不开问题解决办法)
Jan 10 Python
Python3加密解密库Crypto的RSA加解密和签名/验签实现方法实例
Feb 11 Python
Python Tkinter Entry和Text的添加与使用详解
Mar 04 Python
Python实现一个简单的递归下降分析器
Aug 01 #Python
Python 如何在字符串中插入变量
Aug 01 #Python
Python打印不合法的文件名
Jul 31 #Python
Django+Uwsgi+Nginx如何实现生产环境部署
Jul 31 #Python
Python 如何测试文件是否存在
Jul 31 #Python
Python高并发解决方案实现过程详解
Jul 31 #Python
Python如何执行精确的浮点数运算
Jul 31 #Python
You might like
php Smarty 字符比较代码
2011/02/27 PHP
php 判断是否是中文/英文/数字示例代码
2013/09/30 PHP
javascript读取RSS数据
2007/01/20 Javascript
WebGame《逆转裁判》完整版 代码下载(1月24日更新)
2007/01/29 Javascript
Javascript实现的分页函数
2007/02/07 Javascript
获取客户端网卡MAC地址和IP地址实现JS代码
2013/03/17 Javascript
JQuery给元素添加/删除节点比如select
2013/04/02 Javascript
时间戳转换为时间 年月日时间的JS函数
2013/08/19 Javascript
js实现window.open不被拦截的解决方法汇总
2014/10/30 Javascript
jQuery实现行文字链接提示效果的方法
2015/03/10 Javascript
把Node.js程序加入服务实现随机启动
2015/06/25 Javascript
JavaScript实现为input与textarea自定义hover,focus效果的方法
2015/08/21 Javascript
学习JavaScript鼠标响应事件
2015/12/25 Javascript
nodejs实现bigpipe异步加载页面方案
2016/01/26 NodeJs
Bootstrap弹出框modal上层的输入框不能获得焦点问题的解决方法
2016/12/13 Javascript
node.js的事件机制
2017/02/08 Javascript
浅谈Webpack打包优化技巧
2018/06/12 Javascript
微信开发之微信jssdk录音功能开发示例
2018/10/22 Javascript
JS实现json数组排序操作实例分析
2019/10/28 Javascript
在vue中把含有html标签转为html渲染页面的实例
2019/10/28 Javascript
Node.js开发之套接字(socket)编程入门示例
2019/11/05 Javascript
Python socket套接字实现C/S模式远程命令执行功能案例
2018/07/06 Python
Python类装饰器实现方法详解
2018/12/21 Python
对python3中, print横向输出的方法详解
2019/01/28 Python
使用python-pptx包批量修改ppt格式的实现
2020/02/14 Python
python Matplotlib基础--如何添加文本和标注
2021/01/26 Python
python中numpy数组与list相互转换实例方法
2021/01/29 Python
Farfetch台湾官网:奢侈品牌时尚购物平台
2019/06/17 全球购物
药学专业大学生个人的自我评价
2013/11/04 职场文书
餐饮业员工工作决心书
2014/03/11 职场文书
公休请假条
2014/04/11 职场文书
乡镇党员群众路线教育实践活动对照检查材料思想汇报
2014/10/05 职场文书
2015年街道办事处团委工作总结
2015/10/14 职场文书
React + Threejs + Swiper 实现全景图效果的完整代码
2021/06/28 Javascript
Go语言实现Base64、Base58编码与解码
2021/07/26 Golang
详细介绍MySQL中limit和offset的用法
2022/05/06 MySQL