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网络编程学习笔记(二):socket建立网络客户端
Jun 09 Python
Python构造自定义方法来美化字典结构输出的示例
Jun 16 Python
Python中matplotlib中文乱码解决办法
May 12 Python
遗传算法之Python实现代码
Oct 10 Python
python爬虫使用cookie登录详解
Dec 27 Python
python ftp 按目录结构上传下载的实现代码
Sep 12 Python
Python 利用pydub库操作音频文件的方法
Jan 09 Python
nohup后台启动Python脚本,log不刷新的解决方法
Jan 14 Python
解决安装python3.7.4报错Can''t connect to HTTPS URL because the SSL module is not available
Jul 31 Python
python自动生成sql语句的脚本
Feb 24 Python
Python趣味爬虫之用Python实现智慧校园一键评教
May 28 Python
python 常用的异步框架汇总整理
Jun 18 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
zend framework文件上传功能实例代码
2013/12/25 PHP
PHP简单留言本功能实现代码
2017/06/09 PHP
PHP将英文数字转换为阿拉伯数字实例讲解
2019/01/28 PHP
PHP操作路由器实现方法示例
2019/04/27 PHP
js history对象简单实现返回和前进
2013/10/30 Javascript
一个JavaScript去除字符串末尾的空白实例代码
2014/09/22 Javascript
JS 通过系统时间限定动态添加 select option的实例代码
2016/06/09 Javascript
JS正则匹配中文的方法示例
2017/01/06 Javascript
JavaScript生成图形验证码
2020/08/24 Javascript
微信小程序收藏功能的实现代码
2018/06/12 Javascript
JS原型和原型链原理与用法实例详解
2020/02/05 Javascript
Node.js API详解之 os模块用法实例分析
2020/05/06 Javascript
vue 获取到数据但却渲染不到页面上的解决方法
2020/11/19 Vue.js
[00:34]TI7不朽珍藏III——纯金地穴编织者饰品展示
2017/07/15 DOTA
[43:26]完美世界DOTA2联赛PWL S2 Forest vs Rebirth 第二场 11.20
2020/11/23 DOTA
Python的ORM框架SQLObject入门实例
2014/04/28 Python
python实现批量获取指定文件夹下的所有文件的厂商信息
2014/09/28 Python
深入理解Python中命名空间的查找规则LEGB
2015/08/06 Python
Python实现打印螺旋矩阵功能的方法
2017/11/21 Python
对numpy的array和python中自带的list之间相互转化详解
2018/04/13 Python
tensorflow 获取模型所有参数总和数量的方法
2018/06/14 Python
Python大数据之网络爬虫的post请求、get请求区别实例分析
2019/11/16 Python
Python按照list dict key进行排序过程解析
2020/04/04 Python
Python基于BeautifulSoup爬取京东商品信息
2020/06/01 Python
keras得到每层的系数方式
2020/06/15 Python
Python装饰器结合递归原理解析
2020/07/02 Python
纯css3实现的动画按钮的实例教程
2014/11/17 HTML / CSS
伦敦一家领先的精品零售商:IRIS Fashion
2019/05/24 全球购物
linux面试题参考答案(8)
2016/04/19 面试题
管理科学大学生求职信
2013/11/13 职场文书
财务会计实习报告体会
2013/12/20 职场文书
校园活动策划书范文
2014/01/10 职场文书
奥巴马就职演讲稿
2014/05/15 职场文书
幼儿园户外活动总结
2014/07/04 职场文书
十佳青年事迹材料
2014/08/21 职场文书
初中数学课堂教学反思
2016/02/17 职场文书