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的ORM框架SQLAlchemy入门教程
Apr 28 Python
python实现字符串和日期相互转换的方法
May 13 Python
对python 中re.sub,replace(),strip()的区别详解
Jul 22 Python
Python pandas用法最全整理
Aug 04 Python
Pytorch 实现权重初始化
Dec 31 Python
Python编程快速上手——PDF文件操作案例分析
Feb 28 Python
python中urllib.request和requests的使用及区别详解
May 05 Python
Python requests接口测试实现代码
Sep 08 Python
python 代码运行时间获取方式详解
Sep 18 Python
Python实现JS解密并爬取某音漫客网站
Oct 23 Python
python多线程和多进程关系详解
Dec 14 Python
教你使用TensorFlow2识别验证码
Jun 11 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调用Oracle存储过程
2006/10/09 PHP
PHP中动态HTML的输出技术
2006/10/09 PHP
Jquery.TreeView结合ASP.Net和数据库生成菜单导航条
2010/08/27 Javascript
15款jQuery分布引导插件分享
2015/02/04 Javascript
浅析script标签中的defer与async属性
2016/11/30 Javascript
分享bootstrap学习笔记心得(组件及其属性)
2017/01/11 Javascript
node文件批量重命名的方法示例
2017/10/23 Javascript
解决Vue使用mint-ui loadmore实现上拉加载与下拉刷新出现一个页面使用多个上拉加载后冲突问题
2017/11/07 Javascript
记一次Vue.js混入mixin的使用(分权限管理页面)
2019/04/17 Javascript
nodejs log4js 使用详解
2019/05/31 NodeJs
express + jwt + postMan验证实现持久化登录
2019/06/05 Javascript
Vue.js中的extend绑定节点并显示的方法
2019/06/20 Javascript
基于Web Audio API实现音频可视化效果
2020/06/12 Javascript
vue-quill-editor 自定义工具栏和自定义图片上传路径操作
2020/08/03 Javascript
Python 获取新浪微博的最新公共微博实例分享
2014/07/03 Python
Python字符串和文件操作常用函数分析
2015/04/08 Python
Python如何快速上手? 快速掌握一门新语言的方法
2017/11/14 Python
Python学习笔记之open()函数打开文件路径报错问题
2018/04/28 Python
Python实现将字符串的首字母变为大写,其余都变为小写的方法
2019/06/11 Python
python自定义函数实现最大值的输出方法
2019/07/09 Python
PyTorch使用cpu加载模型运算方式
2020/01/13 Python
pytorch 图像中的数据预处理和批标准化实例
2020/01/15 Python
Django使用Profile扩展User模块方式
2020/05/14 Python
使用Keras加载含有自定义层或函数的模型操作
2020/06/10 Python
python实现控制台输出颜色
2021/03/02 Python
美国班级戒指、帽子和礼服、毕业产品、年鉴:Balfour
2018/11/01 全球购物
通信工程毕业生求职信
2013/11/16 职场文书
应届生的求职推荐信范文
2013/11/30 职场文书
网上开商店的创业计划书
2014/01/19 职场文书
老公爱的承诺书
2014/03/31 职场文书
大学生入党推荐书范文
2014/05/17 职场文书
区长工作作风个人整改措施
2014/10/01 职场文书
贷款工作证明模板
2015/06/12 职场文书
如何书写授权委托书?
2019/06/25 职场文书
导游词之西湖雷峰塔
2019/09/18 职场文书
Java 多线程协作作业之信号同步
2022/05/11 Java/Android