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 cx_freeze打包工具处理问题思路及解决办法
Feb 13 Python
使用Python生成XML的方法实例
Mar 21 Python
Python实现Mysql数据库连接池实例详解
Apr 11 Python
python中format()函数的简单使用教程
Mar 14 Python
Python3.x爬虫下载网页图片的实例讲解
May 22 Python
tensorflow实现逻辑回归模型
Sep 08 Python
树莓派实现移动拍照
Jun 22 Python
Python中变量的输入输出实例代码详解
Jul 28 Python
详解Pycharm出现out of memory的终极解决方法
Mar 03 Python
浅谈tensorflow中dataset.shuffle和dataset.batch dataset.repeat注意点
Jun 08 Python
keras slice layer 层实现方式
Jun 11 Python
pycharm 实现复制一行的快捷键
Jan 15 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下使用curl模拟用户登陆的代码
2010/09/10 PHP
php管理nginx虚拟主机shell脚本实例
2014/11/19 PHP
PHP中实现Bloom Filter算法
2015/03/30 PHP
一个加载js文件的小脚本
2007/06/28 Javascript
javascript的offset、client、scroll使用方法详解
2012/12/25 Javascript
JavaScript实现班级随机点名小应用需求的具体分析
2014/05/12 Javascript
jQuery窗口、文档、网页各种高度的精确理解
2014/07/02 Javascript
深入分析原生JavaScript事件
2014/12/29 Javascript
正则表达式(语法篇推荐)
2016/06/24 Javascript
AngularJS入门教程之 XMLHttpRequest实例讲解
2016/07/27 Javascript
AngularJS基础 ng-keyup 指令简单示例
2016/08/02 Javascript
js数组操作方法总结(必看篇)
2016/11/22 Javascript
详解vue2.0 使用动态组件实现 Tab 标签页切换效果(vue-cli)
2017/08/30 Javascript
angular4 共享服务在多个组件中数据通信的示例
2018/03/30 Javascript
JS实现简单的点赞与踩功能示例
2018/12/05 Javascript
Seajs源码详解分析
2019/04/02 Javascript
100行代码实现vue表单校验功能(小白自编)
2019/11/19 Javascript
vue绑定数字类型 value为数字的实例
2020/08/31 Javascript
如何区分vue中的v-show 与 v-if
2020/09/08 Javascript
原生JS生成指定位数的验证码
2020/10/28 Javascript
python根据日期返回星期几的方法
2015/07/06 Python
Python装饰器用法实例总结
2018/05/26 Python
python调用HEG工具批量处理MODIS数据的方法及注意事项
2020/02/18 Python
selenium判断元素是否存在的两种方法小结
2020/12/07 Python
使用HTML5中的contentEditable来将多行文本自动增高
2016/03/01 HTML / CSS
以色列的身体护理及家居香薰品牌:Sabon NYC
2018/02/23 全球购物
C#基础面试题
2016/10/17 面试题
测绘工程个人的自我评价
2013/11/10 职场文书
《动手做做看》教学反思
2014/04/09 职场文书
升职演讲稿范文
2014/05/23 职场文书
师德师风的心得体会
2014/09/02 职场文书
企业党员个人自我评价
2014/09/20 职场文书
面试通知单大全
2015/04/20 职场文书
2015年领导干部廉洁自律工作总结
2015/05/26 职场文书
pycharm 如何查看某一函数源码的快捷键
2021/05/12 Python
Python+Appium实现自动抢微信红包
2021/05/21 Python