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数据分析之获取双色球历史信息的方法示例
Feb 03 Python
详解多线程Django程序耗尽数据库连接的问题
Oct 08 Python
Python字典中的键映射多个值的方法(列表或者集合)
Oct 17 Python
在python中实现对list求和及求积
Nov 14 Python
python3获取当前目录的实现方法
Jul 29 Python
Python环境Pillow( PIL )图像处理工具使用解析
Sep 12 Python
浅析PEP572: 海象运算符
Oct 15 Python
Python生成个性签名图片获取GUI过程解析
Dec 16 Python
python装饰器原理与用法深入详解
Dec 19 Python
PyTorch中Tensor的数据统计示例
Feb 17 Python
基于Python3.7.1无法导入Numpy的解决方式
Mar 09 Python
Python Scrapy图片爬取原理及代码实例
Jun 12 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 修复未正常关闭的HTML标签实现代码(支持嵌套和就近闭合)
2012/06/07 PHP
PHP中将ip地址转成十进制数的两种实用方法
2013/08/15 PHP
在Mac OS上搭建PHP的Yii框架及相关测试环境
2016/02/14 PHP
PHP常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】
2017/02/07 PHP
PHP性能分析工具xhprof的安装使用与注意事项
2017/12/19 PHP
Javascript 不能释放内存.
2006/09/07 Javascript
JS/jQuery实现默认显示部分文字点击按钮显示全部内容
2013/05/13 Javascript
JS获取浏览器语言动态加载JS文件示例代码
2014/10/31 Javascript
jQuery中noConflict()用法实例分析
2015/02/08 Javascript
JavaScript实现把rgb颜色转换成16进制颜色的方法
2015/06/01 Javascript
BootStrap框架个人总结(bootstrap框架、导航条、下拉菜单、轮播广告carousel、栅格系统布局、标签页tabs、模态框、菜单定位)
2016/12/01 Javascript
js 获取图像缩放后的实际宽高,位置等信息
2017/03/07 Javascript
Node.js 使用命令行工具检查更新
2017/06/08 Javascript
使用百度地图实现地图网格的示例
2018/02/06 Javascript
vue draggable resizable gorkys与v-chart使用与总结
2019/09/05 Javascript
初步解析Python下的多进程编程
2015/04/28 Python
将Python代码打包为jar软件的简单方法
2015/08/04 Python
python装饰器初探(推荐)
2016/07/21 Python
Python Sqlite3以字典形式返回查询结果的实现方法
2016/10/03 Python
python+ffmpeg视频并发直播压力测试
2018/03/06 Python
python+django+rest框架配置创建方法
2019/08/31 Python
python隐藏类中属性的3种实现方法
2019/12/19 Python
css3高级选择器使用方法
2013/12/02 HTML / CSS
Orvis官网:自1856年以来,优质服装、飞钓装备等
2018/12/17 全球购物
皇家阿尔伯特瓷器美国官网:Royal Albert美国
2020/02/16 全球购物
俄罗斯游戏商店:Buka
2020/03/01 全球购物
货代行业个人求职简历的自我评价
2013/10/22 职场文书
财务会计专业推荐信
2013/11/30 职场文书
自我评价范文
2013/12/22 职场文书
护士毕业实习感言
2014/03/05 职场文书
小学生国旗下演讲稿
2014/04/25 职场文书
自荐信格式范文
2015/03/04 职场文书
2016七夕情人节寄语
2015/12/04 职场文书
课改心得体会范文
2016/01/25 职场文书
MySQL读取JSON转换的方式
2022/03/18 MySQL
前端传参数进行Mybatis调用mysql存储过程执行返回值详解
2022/08/14 MySQL