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绘制数据的瀑布图的教程
Apr 07 Python
Python安装第三方库的3种方法
Jun 21 Python
深入理解Python变量与常量
Jun 02 Python
利用Python实现图书超期提醒
Aug 02 Python
使用Python做定时任务及时了解互联网动态
May 15 Python
Pycharm使用之设置代码字体大小和颜色主题的教程
Jul 12 Python
Python内建序列通用操作6种实现方法
Mar 26 Python
Python 捕获代码中所有异常的方法
Aug 03 Python
python读取xml文件方法解析
Aug 04 Python
python中print格式化输出的问题
Apr 16 Python
Python中常见的导入方式总结
May 06 Python
Python基础教程,Python入门教程(超详细)
Jun 24 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中jpgraph类库的使用介绍
2013/08/08 PHP
安装ImageMagick出现error while loading shared libraries的解决方法
2014/09/23 PHP
PHP MYSQL实现登陆和模糊查询两大功能
2016/02/05 PHP
PHP Pipeline 实现中间件的示例代码
2020/04/26 PHP
wordpress之js库集合研究介绍
2007/08/17 Javascript
JavaScript window.setTimeout() 的详细用法
2009/11/04 Javascript
Ext JS 4实现带week(星期)的日期选择控件(实战二)
2013/08/21 Javascript
使用js判断当前时区TimeZone是否是夏令时
2014/02/23 Javascript
JavaScript闭包函数访问外部变量的方法
2014/08/27 Javascript
jQuery使用$.ajax进行即时验证的方法
2015/12/08 Javascript
APP中javascript+css3实现下拉刷新效果
2016/01/27 Javascript
全面了解JavaScript对象进阶
2016/07/19 Javascript
基于JavaScript实现鼠标箭头移动图片跟着移动
2016/08/30 Javascript
jQuery展示表格点击变色、全选、删除
2017/01/05 Javascript
使用nodejs下载风景壁纸
2017/02/05 NodeJs
浅谈express 中间件机制及实现原理
2017/08/31 Javascript
JS扩展String.prototype.format字符串拼接的功能
2018/03/09 Javascript
vue实现自定义多选与单选的答题功能
2018/07/05 Javascript
详解Axios 如何取消已发送的请求
2018/10/20 Javascript
vue使用微信扫一扫功能的实现代码
2020/04/11 Javascript
python函数参数*args**kwargs用法实例
2013/12/04 Python
Python中的pass语句使用方法讲解
2015/05/14 Python
Python排序算法实例代码
2017/08/10 Python
Python代码太长换行的实现
2019/07/05 Python
python3 sleep 延时秒 毫秒实例
2020/05/04 Python
详解Python 中的容器 collections
2020/08/17 Python
Python学习工具jupyter notebook安装及用法解析
2020/10/23 Python
pycharm实现猜数游戏
2020/12/07 Python
[原创]赚疯了!转手立赚800+?大佬的python「抢茅台脚本」使用教程
2021/01/12 Python
美国礼品卡交易网站:Cardpool
2018/08/27 全球购物
法律专业实习鉴定
2013/12/22 职场文书
药剂专业学生求职信范文
2013/12/28 职场文书
正规借条模板
2015/05/26 职场文书
入党积极分子培养人意见
2015/06/02 职场文书
走近毛泽东观后感
2015/06/04 职场文书
2015毕业设计工作总结
2015/07/24 职场文书