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实现截屏的函数
Jul 25 Python
Python使用lxml模块和Requests模块抓取HTML页面的教程
May 16 Python
python实现读取excel写入mysql的小工具详解
Nov 20 Python
书单|人生苦短,你还不用python!
Dec 29 Python
python实现定时自动备份文件到其他主机的实例代码
Feb 23 Python
Python使用selenium实现网页用户名 密码 验证码自动登录功能
May 16 Python
Pandas之排序函数sort_values()的实现
Jul 09 Python
pytorch 加载(.pth)格式的模型实例
Aug 20 Python
Python 简单计算要求形状面积的实例
Jan 18 Python
python中的unittest框架实例详解
Feb 05 Python
Python plt 利用subplot 实现在一张画布同时画多张图
Feb 26 Python
python使用pymysql模块操作MySQL
Jun 16 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
PHP5中MVC结构学习
2006/10/09 PHP
Zend的MVC机制使用分析(一)
2013/05/02 PHP
分析php://output和php://stdout的区别
2018/05/06 PHP
javascript一些实用技巧小结
2011/03/18 Javascript
javascript之querySelector和querySelectorAll使用说明
2011/10/09 Javascript
jquery插件制作 表单验证实现代码
2012/08/17 Javascript
jquery中animate的stop()方法作用实例分析
2015/01/30 Javascript
jquery中toggle函数交替使用问题
2015/06/22 Javascript
jQuery获取某天的农历日期并判断是否除夕或新年的方法
2016/03/01 Javascript
AngularJS实现按钮提示与点击变色效果
2016/09/07 Javascript
浅谈layer的iframe弹窗给里面的标签赋值的问题
2016/11/10 Javascript
深入理解Javascript中的观察者模式
2017/02/20 Javascript
Angular2 Service实现简单音乐播放器服务
2017/02/24 Javascript
Vue2.0 v-for filter列表过滤功能的实现
2018/09/07 Javascript
node中的session的具体使用
2018/09/14 Javascript
Vue实现浏览器打印功能的代码
2020/04/17 Javascript
[50:48]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python应用程序在windows下不出现cmd窗口的办法
2014/05/29 Python
用Python进行简单图像识别(验证码)
2018/01/19 Python
IE支持HTML5的解决方法
2009/10/20 HTML / CSS
e路東瀛(JAPANiCAN)香港:日本旅游、日本酒店和温泉旅馆预订
2018/11/21 全球购物
贪睡宠物用品:Snoozer Pet Products
2020/02/04 全球购物
Herschel美国官网:背包、手提袋及配件
2020/03/10 全球购物
传播学毕业生求职信
2013/10/11 职场文书
大学生求职自荐信
2013/12/12 职场文书
金融管理专业毕业生求职信
2014/03/12 职场文书
计算机专业毕业生自荐书
2014/06/02 职场文书
平面设计师岗位职责
2014/09/18 职场文书
入股协议书范本
2014/11/01 职场文书
2014小学教师年度考核工作总结
2014/12/03 职场文书
幼师大班个人总结
2015/02/13 职场文书
参观监狱警示教育心得体会
2016/01/15 职场文书
高中班主任工作总结(范文)
2019/08/20 职场文书
写给医护人员的一封感谢信
2019/09/16 职场文书
互联网创业商业模式以及赚钱法则有哪些?
2019/10/12 职场文书
Minikube搭建Kubernetes集群
2022/03/31 Servers