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 相关文章推荐
高性能web服务器框架Tornado简单实现restful接口及开发实例
Jul 16 Python
python写的一个squid访问日志分析的小程序
Sep 17 Python
Python的Flask框架中实现分页功能的教程
Apr 20 Python
python自动循环定时开关机(非重启)测试
Aug 26 Python
Pytorch 实现冻结指定卷积层的参数
Jan 06 Python
python统计文章中单词出现次数实例
Feb 27 Python
python利用opencv实现SIFT特征提取与匹配
Mar 05 Python
Python tkinter界面实现历史天气查询的示例代码
Aug 23 Python
python opencv肤色检测的实现示例
Dec 21 Python
用python批量移动文件
Jan 14 Python
Python try except finally资源回收的实现
Jan 25 Python
Python GUI编程之tkinter 关于 ttkbootstrap 的使用详解
Mar 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
ThinkPHP的Widget扩展实例
2014/06/19 PHP
php-redis中的sort排序函数总结
2015/07/08 PHP
PHP实现Huffman编码/解码的示例代码
2018/04/20 PHP
Yii框架响应组件用法实例分析
2019/09/04 PHP
js仿百度有啊通栏展示效果实现代码
2013/05/28 Javascript
JS(JQuery)操作Array的相关方法介绍
2014/02/11 Javascript
jquery中filter方法用法实例分析
2015/02/06 Javascript
JQuery跳出each循环的方法
2015/04/16 Javascript
跟我学习javascript的var预解析与函数声明提升
2015/11/16 Javascript
基于jQuery实现select下拉选择可输入附源码下载
2016/02/03 Javascript
js仿iphone秒表功能 计算平均数
2017/01/11 Javascript
详谈$.data()的用法和作用
2017/02/13 Javascript
老生常谈combobox和combotree模糊查询
2017/04/17 Javascript
AngularJS发送异步Get/Post请求方法
2018/08/13 Javascript
详解JavaScript 为什么要有 Symbol 类型?
2019/04/03 Javascript
python 动态获取当前运行的类名和函数名的方法
2014/04/15 Python
pymongo给mongodb创建索引的简单实现方法
2015/05/06 Python
Linux下使用python自动修改本机网关代码分享
2015/05/21 Python
Python何时应该使用Lambda函数
2019/07/02 Python
Python高级特性——详解多维数组切片(Slice)
2019/11/26 Python
python 实现单通道转3通道
2019/12/03 Python
Python3 获取文件属性的方式(时间、大小等)
2020/03/12 Python
Python实现aes加密解密多种方法解析
2020/05/15 Python
python如何求圆的面积
2020/07/01 Python
selenium与xpath之获取指定位置的元素的实现
2021/01/26 Python
CSS3 实现时间轴动画
2020/11/25 HTML / CSS
施华洛世奇新加坡官网:SWAROVSKI新加坡
2020/10/06 全球购物
高中数学教师求职信
2013/10/30 职场文书
文化宣传方案
2014/03/13 职场文书
法院授权委托书范文
2014/08/02 职场文书
公司总经理岗位职责
2015/04/01 职场文书
教师正风肃纪心得体会
2016/01/15 职场文书
MySQL如何解决幻读问题
2021/08/07 MySQL
Python游戏开发实例之graphics实现AI五子棋
2021/11/01 Python
python 单机五子棋对战游戏
2022/04/28 Python
HTML页面点击按钮关闭页面的多种方式
2022/12/24 HTML / CSS