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中使用mysql数据库详细介绍
Mar 27 Python
使用基于Python的Tornado框架的HTTP客户端的教程
Apr 24 Python
深入讲解Java编程中类的生命周期
Feb 05 Python
基于Python的文件类型和字符串详解
Dec 21 Python
python3对拉勾数据进行可视化分析的方法详解
Apr 03 Python
Python 2/3下处理cjk编码的zip文件的方法
Apr 26 Python
python nmap实现端口扫描器教程
May 28 Python
python 函数嵌套及多函数共同运行知识点讲解
Mar 03 Python
解决keras backend 越跑越慢问题
Jun 18 Python
用python绘制樱花树
Oct 09 Python
python实现简单贪吃蛇游戏
Sep 29 Python
Python何绘制带有背景色块的折线图
Apr 23 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以指定字段为索引返回数据库所取的数据数组
2013/06/30 PHP
php中Socket创建与监听实现方法
2015/01/05 PHP
PHP实现可自定义样式的分页类
2016/03/29 PHP
php写一个函数,实现扫描并打印出自定目录下(含子目录)所有jpg文件名
2017/05/26 PHP
php实现和c#一致的DES加密解密实例
2017/07/24 PHP
js 方法实现返回多个数据的代码
2009/04/30 Javascript
JavaScript this 深入理解
2009/07/30 Javascript
javascript温习的一些笔记 基础常用知识小结
2011/06/22 Javascript
Notify - 基于jquery的消息通知插件
2011/10/18 Javascript
巧用局部变量提升javascript性能
2014/02/24 Javascript
Node.js中的模块机制学习笔记
2014/11/04 Javascript
JavaScript实现获得所有兄弟节点的方法
2015/07/23 Javascript
详解JavaScript数组的操作大全
2015/10/19 Javascript
利用纯Vue.js构建Bootstrap组件
2016/11/03 Javascript
vue.js的提示组件
2017/03/02 Javascript
Bootstrap笔记—折叠实例代码
2017/03/13 Javascript
node.js中express中间件body-parser的介绍与用法详解
2017/05/23 Javascript
详解如何在react中搭建d3力导向图
2018/01/12 Javascript
微信小程序实现MUI数字输入框效果
2018/01/31 Javascript
Nodejs下使用gm圆形裁剪并合成图片的示例
2018/02/22 NodeJs
微信小程序实现折叠与展开文章功能
2018/06/12 Javascript
微信小程序项目总结之点赞 删除列表 分享功能
2018/06/25 Javascript
mpvue微信小程序开发之实现一个弹幕评论
2019/11/24 Javascript
js实现拖拽元素选择和删除
2020/08/25 Javascript
[01:17]炒鸡美酒第四天TA暴走
2018/06/05 DOTA
[01:28:44]DOTA2-DPC中国联赛定级赛 RNG vs iG BO3第一场 1月10日
2021/03/11 DOTA
python静态方法实例
2015/01/14 Python
Python中特殊函数集锦
2015/07/27 Python
对Python中TKinter模块中的Label组件实例详解
2019/06/14 Python
Python实现多线程/多进程的TCP服务器
2019/09/03 Python
Python AutoCAD 系统设置的实现方法
2020/04/01 Python
pycharm 代码自动补全的实现方法(图文)
2020/09/18 Python
Python操作PostgreSql数据库的方法(基本的增删改查)
2020/12/29 Python
2013年学期结束动员演讲稿
2014/01/07 职场文书
后勤部经理岗位职责
2014/02/23 职场文书
乡镇务虚会发言材料
2014/10/20 职场文书