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操作CouchDB的方法
Oct 08 Python
Python pickle模块用法实例
Apr 14 Python
python中defaultdict的用法详解
Jun 07 Python
Python中static相关知识小结
Jan 02 Python
Python Json模块中dumps、loads、dump、load函数介绍
May 15 Python
Python 限制线程的最大数量的方法(Semaphore)
Feb 22 Python
Python3 tkinter 实现文件读取及保存功能
Sep 12 Python
Python从入门到精通之环境搭建教程图解
Sep 26 Python
音频处理 windows10下python三方库librosa安装教程
Jun 20 Python
Django数据统计功能count()的使用
Nov 30 Python
python数据抓取3种方法总结
Feb 07 Python
Jupyter Notebook内使用argparse报错的解决方案
Jun 03 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/02/26 PHP
PHP查询大量数据内存耗尽问题的解决方法
2016/10/28 PHP
PHP基于简单递归函数求一个数阶乘的方法示例
2017/04/26 PHP
PHP队列场景以及实现代码实例详解
2021/02/26 PHP
javascript的键盘控制事件说明
2008/04/15 Javascript
js 获取Listbox选择的值的代码
2010/04/15 Javascript
html+css+js实现xp window界面及有关功能
2013/03/26 Javascript
jquery图片不完全按比例自动缩小的简单代码
2013/07/29 Javascript
Javascript 多浏览器兼容总结(实战经验)
2013/10/30 Javascript
Node.js中调用mysql存储过程示例
2014/12/20 Javascript
jquery+ajax实现跨域请求的方法
2015/01/20 Javascript
angularJS与bootstrap结合实现动态加载弹出提示内容
2015/10/16 Javascript
JS中使用mailto实现将用户在网页中输入的内容传递到本地邮件客户端
2016/10/08 Javascript
js实现五星评价功能
2017/03/08 Javascript
AngularJS中使用ngModal模态框实例
2017/05/27 Javascript
代码详解JS操作剪贴板
2018/02/11 Javascript
解决Layui中templet中a的onclick参数传递的问题
2019/09/20 Javascript
JavaScript实现五子棋小游戏
2020/10/26 Javascript
uniapp微信小程序:key失效的解决方法
2021/01/20 Javascript
[01:01:51]EG vs VG Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
[05:00]TI9战队采访 - Royal Never Give Up
2019/08/20 DOTA
python模块smtplib学习
2018/05/22 Python
浅谈python3发送post请求参数为空的情况
2018/12/28 Python
Python 写了个新型冠状病毒疫情传播模拟程序
2020/02/14 Python
关于python中的xpath解析定位
2020/03/06 Python
爱尔兰灯和灯具网上商店:Lights.ie
2018/03/26 全球购物
英国领先的鞋类零售商:Shoe Zone
2018/12/13 全球购物
abstract是什么意思
2012/02/12 面试题
会计电算一体化个人简历的自我评价
2013/10/15 职场文书
护理专业自荐信
2013/12/03 职场文书
珍惜时间演讲稿
2014/05/14 职场文书
争先创优演讲稿
2014/09/15 职场文书
学校感恩节活动策划方案
2014/10/06 职场文书
2014年接待工作总结
2014/11/26 职场文书
行政助理岗位职责范本
2015/04/11 职场文书
国产动画《万圣街》日语配音版制作决定!
2022/03/20 国漫