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 Django连接MySQL数据库做增删改查
Nov 07 Python
Python基于tkinter模块实现的改名小工具示例
Jul 27 Python
python对excel文档去重及求和的实例
Apr 18 Python
TensorFlow打印tensor值的实现方法
Jul 27 Python
Python从list类型、range()序列简单认识类(class)【可迭代】
May 31 Python
python使用列表的最佳方案
Aug 12 Python
Django3中的自定义用户模型实例详解
Aug 23 Python
Pandas DataFrame求差集的示例代码
Dec 13 Python
python中remove函数的踩坑记录
Jan 04 Python
pycharm进入时每次都是insert模式的解决方式
Feb 05 Python
pytorch 如何使用float64训练
May 24 Python
利用Python实现Picgo图床工具
Nov 23 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维护文件系统
2006/10/09 PHP
php使用pclzip类实现文件压缩的方法(附pclzip类下载地址)
2016/04/30 PHP
PHP实现文件下载【实例分享】
2017/04/28 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
2017/12/25 PHP
thinkPHP3.2.2框架行为扩展及demo示例
2018/06/19 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
2020/02/27 PHP
javascript开发技术大全-第1章javascript概述
2011/07/03 Javascript
js判断60秒以及倒计时示例代码
2014/01/24 Javascript
浅析Node.js 中 Stream API 的使用
2015/10/23 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(三)
2016/09/14 Javascript
纯JS打造网页中checkbox和radio的美化效果
2016/10/13 Javascript
nodejs+express实现文件上传下载管理网站
2017/03/15 NodeJs
单击按钮发送验证码,出现倒计时的简单实例
2017/03/17 Javascript
基于jQuery选择器之表单对象属性筛选选择器的实例
2017/09/19 jQuery
js实现各浏览器全屏代码实例
2018/07/03 Javascript
详解JavaScript 中 if / if...else...替换方式
2018/07/15 Javascript
浅谈Webpack核心模块tapable解析
2018/09/11 Javascript
基于Vue-Cli 打包自动生成/抽离相关配置文件的实现方法
2018/12/09 Javascript
javascript面向对象三大特征之继承实例详解
2019/07/24 Javascript
JavaScript布尔运算符原理使用解析
2020/05/06 Javascript
JavaScript 引用类型实例详解【数组、对象、严格模式等】
2020/05/13 Javascript
python中as用法实例分析
2015/04/30 Python
python基于pyDes库实现des加密的方法
2017/04/29 Python
详解 Python 与文件对象共事的实例
2017/09/11 Python
Python创建一个空的dataframe,并循环赋值的方法
2018/11/08 Python
Python笔记之facade模式
2019/11/20 Python
python opencv如何实现图片绘制
2020/01/19 Python
浅谈pytorch 模型 .pt, .pth, .pkl的区别及模型保存方式
2020/05/25 Python
pytorch 常用函数 max ,eq说明
2020/06/28 Python
PyCharm2020.1.2社区版安装,配置及使用教程详解(Windows)
2020/08/07 Python
html5视频播放_动力节点Java学院整理
2017/07/13 HTML / CSS
Vilebrequin美国官方网上商店:法国豪华泳装品牌
2020/02/22 全球购物
什么是makefile? 如何编写makefile?
2012/08/08 面试题
初中生毕业评语
2014/12/29 职场文书
python自然语言处理之字典树知识总结
2021/04/25 Python
vue使用watch监听属性变化
2022/04/30 Vue.js