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解析html开发库pyquery使用方法
Feb 07 Python
python文件读写操作与linux shell变量命令交互执行的方法
Jan 14 Python
Python描述器descriptor详解
Feb 03 Python
在Mac OS系统上安装Python的Pillow库的教程
Nov 20 Python
python批量制作雷达图的实现方法
Jul 26 Python
python3 cvs将数据读取为字典的方法
Dec 22 Python
局域网内python socket实现windows与linux间的消息传送
Apr 19 Python
python中的句柄操作的方法示例
Jun 20 Python
django框架基于queryset和双下划线的跨表查询操作详解
Dec 11 Python
TensorFlow设置日志级别的几种方式小结
Feb 04 Python
最简单的matplotlib安装教程(小白)
Jul 28 Python
Python爬虫基础讲解之请求
May 13 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面向对象分析设计的经验原则
2008/09/20 PHP
php数组对百万数据进行排除重复数据的实现代码
2010/06/08 PHP
php批量更改数据库表前缀实现方法
2013/10/26 PHP
使用WordPress发送电子邮件的相关PHP函数用法解析
2015/12/15 PHP
php禁用函数设置及查看方法详解
2016/07/25 PHP
php使用 readfile() 函数设置文件大小大小的方法
2017/08/11 PHP
TP5框架实现自定义分页样式的方法示例
2020/04/05 PHP
使用jQuery.wechat构建微信WEB应用
2014/10/09 Javascript
jQuery中:image选择器用法实例
2015/01/03 Javascript
在JavaScript应用中实现延迟加载的方法
2015/06/25 Javascript
vue实现可增删查改的成绩单
2016/10/27 Javascript
jacascript DOM节点——元素节点、属性节点、文本节点
2017/04/18 Javascript
JS实现简单抖动效果
2017/06/01 Javascript
Angular实现可删除并计算总金额的购物车功能示例
2017/12/26 Javascript
浅谈Vue路由快照实现思路及其问题
2018/06/07 Javascript
详解组件库的webpack构建速度优化
2018/06/18 Javascript
Node.js log4js日志管理详解
2018/07/31 Javascript
前后端如何实现登录token拦截校验详解
2018/09/03 Javascript
js实现盒子拖拽动画效果
2020/08/09 Javascript
[00:57]深扒TI7聊天轮盘语音出处5
2017/05/11 DOTA
Python常用模块用法分析
2014/09/08 Python
python利用正则表达式提取字符串
2016/12/08 Python
python爬虫系列Selenium定向爬取虎扑篮球图片详解
2017/11/15 Python
利用python Selenium实现自动登陆京东签到领金币功能
2019/10/31 Python
python操作toml文件的示例代码
2020/11/27 Python
CSS3中的display:grid,网格布局介绍
2019/10/30 HTML / CSS
伊利莎白雅顿官网:Elizabeth Arden
2016/10/10 全球购物
菲律宾购物网站:Lazada菲律宾
2018/04/05 全球购物
LN-CC美国:伦敦时尚生活的缩影
2019/02/19 全球购物
英国IT硬件供应商,定制游戏PC:Mesh Computers
2019/03/28 全球购物
应届大学生求职的自我评价
2013/11/17 职场文书
大一新生军训时的自我评价分享
2013/12/05 职场文书
回门宴父母答谢词
2014/01/26 职场文书
商铺门面租房协议书
2014/10/21 职场文书
上课迟到检讨书
2015/05/06 职场文书
Java中PriorityQueue实现最小堆和最大堆的用法
2021/06/27 Java/Android