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 相关文章推荐
如何处理Python3.4 使用pymssql 乱码问题
Jan 08 Python
Pycharm学习教程(4) Python解释器的相关配置
May 03 Python
Python爬虫获取图片并下载保存至本地的实例
Jun 01 Python
对pandas里的loc并列条件索引的实例讲解
Nov 15 Python
django settings.py 配置文件及介绍
Jul 15 Python
python实现点击按钮修改数据的方法
Jul 17 Python
python3.6连接mysql数据库及增删改查操作详解
Feb 10 Python
执行Python程序时模块报错问题
Mar 26 Python
python opencv实现图片缺陷检测(讲解直方图以及相关系数对比法)
Apr 07 Python
Anaconda和ipython环境适配的实现
Apr 22 Python
Django QuerySet查询集原理及代码实例
Jun 13 Python
Django修改app名称和数据表迁移方案实现
Sep 17 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+RabbitMQ实现消息队列的完整代码
2019/03/20 PHP
3款实用的在线JS代码工具(国外)
2012/03/15 Javascript
js获取当前页面路径示例讲解
2014/01/08 Javascript
jQuery中html()方法用法实例
2014/12/25 Javascript
一波JavaScript日期判断脚本分享
2016/03/06 Javascript
bootstrap——bootstrapTable实现隐藏列的示例
2017/01/14 Javascript
flexslider.js实现移动端轮播
2017/02/05 Javascript
node.js+captchapng+jsonwebtoken实现登录验证示例
2017/08/17 Javascript
Angular实现下载安装包的功能代码分享
2017/09/05 Javascript
JavaScript运行原理分析
2018/02/09 Javascript
jQuery实现的鼠标拖动浮层功能示例【拖动div等任何标签】
2018/12/29 jQuery
element-ui组件中input等的change事件中传递自定义参数
2019/05/22 Javascript
vue路由守卫及路由守卫无限循环问题详析
2019/09/05 Javascript
Vue CLI4 Vue.config.js标准配置(最全注释)
2020/06/05 Javascript
Vue 实现拨打电话操作
2020/11/16 Javascript
[02:30]DOTA2放量测试专访海涛:呼吁保护新手玩家
2013/08/26 DOTA
[12:29]《一刀刀一天》之DOTA全时刻19:蝙蝠骑士田伯光再度不举
2014/06/10 DOTA
[01:11]辉夜杯战队访谈宣传片—CDEC.Y
2015/12/26 DOTA
Python找出文件中使用率最高的汉字实例详解
2015/06/03 Python
Unicode和Python的中文处理
2017/03/19 Python
windows下python和pip安装教程
2018/05/25 Python
Anaconda 查看、创建、管理和使用python环境的方法
2019/12/03 Python
Python 中@property的用法详解
2020/01/15 Python
python学习笔记之多进程
2020/08/06 Python
Python collections模块的使用方法
2020/10/09 Python
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?
2016/08/18 面试题
《泉水》教学反思
2014/04/11 职场文书
学生实习证明模板汇总
2014/09/25 职场文书
开展党的群众路线教育实践活动情况汇报
2014/11/05 职场文书
小学感恩节活动总结
2015/03/24 职场文书
圆明园观后感
2015/06/03 职场文书
毕业生入职感言
2015/07/31 职场文书
2015中秋祝酒词
2015/08/12 职场文书
自荐信范文
2019/05/20 职场文书
dubbo集成zipkin获取Traceid的实现
2021/07/26 Java/Android
Win11 Dev 预览版25174.1000发布 (附更新修复内容汇总)
2022/08/05 数码科技