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创建和删除目录的方法
Apr 29 Python
Python抓取淘宝下拉框关键词的方法
Jul 08 Python
简单掌握Python的Collections模块中counter结构的用法
Jul 07 Python
python实现类之间的方法互相调用
Apr 29 Python
python实现鸢尾花三种聚类算法(K-means,AGNES,DBScan)
Jun 27 Python
python requests使用socks5的例子
Jul 25 Python
Python关键字及可变参数*args,**kw原理解析
Apr 04 Python
python实现坦克大战
Apr 24 Python
Python 实现一行输入多个数字(用空格隔开)
Apr 29 Python
python飞机大战游戏实例讲解
Dec 04 Python
Python爬虫之Selenium下拉框处理的实现
Dec 04 Python
用 Python 元类的特性实现 ORM 框架
May 19 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
颠覆常识!无色透明的咖啡诞生了(中日双语)
2021/03/03 咖啡文化
php解析字符串里所有URL地址的方法
2015/04/03 PHP
浅析ThinkPHP缓存之快速缓存(F方法)和动态缓存(S方法)(日常整理)
2015/10/26 PHP
php获取远程文件内容的函数
2015/11/02 PHP
Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册
2016/12/27 PHP
PHP中empty,isset,is_null用法和区别
2017/02/19 PHP
form自动提交实例讲解
2017/07/10 PHP
php数据序列化测试实例详解
2017/08/12 PHP
laravel如何开启跨域功能示例详解
2017/08/31 PHP
php实现二叉树中和为某一值的路径方法
2018/10/14 PHP
js的toLowerCase方法用法实例
2015/01/27 Javascript
jQuery点缩略图弹出层显示大图片
2015/02/13 Javascript
JS实现可关闭的对联广告效果代码
2015/09/14 Javascript
使用Function.apply()的参数数组化来提高 JavaScript程序性能的技巧
2015/12/23 Javascript
js+canvas绘制矩形的方法
2016/01/28 Javascript
JavaScript读二进制文件并用ajax传输二进制流的方法
2016/07/18 Javascript
BootStrap树状图显示功能
2016/11/24 Javascript
js实现表格筛选功能
2017/01/18 Javascript
JQuery查找子元素find()和遍历集合each的方法总结
2017/03/07 Javascript
微信小程序 本地数据读取实例
2017/04/27 Javascript
Javascript循环删除数组中元素的几种方法示例
2017/05/18 Javascript
jquery在启动页面时,自动加载数据的实例
2018/01/22 jQuery
VUE 全局变量的几种实现方式
2018/08/22 Javascript
JavaScript查看代码运行效率console.time()与console.timeEnd()用法
2019/01/18 Javascript
elementUI vue this.$confirm 和el-dialog 弹出框 移动 示例demo
2019/07/03 Javascript
Python六大开源框架对比
2015/10/19 Python
Python中方法链的使用方法
2016/02/23 Python
Python实现读取txt文件并画三维图简单代码示例
2017/12/09 Python
python读取csv和txt数据转换成向量的实例
2019/02/12 Python
Python实现剪刀石头布小游戏(与电脑对战)
2019/12/31 Python
浅谈CSS3特性查询(Feature Query: @supports)功能简介
2017/07/31 HTML / CSS
国际领先的在线时尚服装和配饰店:DressLily
2019/03/03 全球购物
暑期社会实践方案
2014/02/05 职场文书
2015年精神文明建设工作总结
2015/04/21 职场文书
如何制定一份可行的计划!
2019/06/21 职场文书
Linux中各个目录的作用与内容
2022/06/28 Servers