python中的格式化输出用法总结


Posted in Python onJuly 28, 2016

本文实例总结了python中的格式化输出用法。分享给大家供大家参考,具体如下:

Python一共有两种格式化输出语法。

一种是类似于C语言printf的方式,称为 Formatting Expression

>>> '%s %d-%d' % ('hello', 7, 1)
'hello 7-1'

另一种是类似于C#的方式,称为String Formatting Method Calls

>>> '{0} {1}:{2}'.format('hello', '1', '7')
'hello 1:7'

第一种方式可以指定浮点数的精度,例如

>>> '%.3f' % 1.234567869
'1.235'

运行时动态指定浮点数的精度

但是当代码在运行中如何动态地通过参数来指定浮点数的精度呢?

python的神奇之处在于它又提供了一种非常方便的语法。只需要在 typecode(这里是f)之前加一个 *,浮点数的精度就用它前面的数字来指定。

>>> for i in range(5):
... '%.*f' % (i, 1.234234234234234)
...
'1'
'1.2'
'1.23'
'1.234'
'1.2342'

通过输出结果可以看出,精度都是在运行时动态指定,这样就省去了格式化字符串的拼凑。

使用 String Formatting Method Calls 可以更简洁地完成功能。

>>> for i in range(5):
...  '{0:.{1}f}'.format(1 / 3.0, i)
...
'0'
'0.3'
'0.33'
'0.333'
'0.3333'

实现一个简单的模板工具

Django提供的模板语言,可以让我们通过一个dict(字典)把python变量绑定的html文件中,其实利用python的格式化输出我们也可以仅仅做一个文本替换功能。

>>> replay = """
... Hello World Cup...
... Germany vs Brazil
... %(germany)d : %(brazil)d"""
>>> print(replay % {'germany': 7, 'brazil': 1})
Hello World Cup...
Germany vs Brazil
7 : 1

还可以这样玩

>>> germany = 7
>>> brazil = 1
>>> '%(germany)d : %(brazil)d' % vars()
'7 : 1'

在格式化字符串中访问对象属性和字典键值

>>> 'My {1[kind]} runs {0.platform}'.format(sys, {'kind': 'pc'})
'My pc runs linux'
>>> 'My {map[kind]} runs {sys.platform}'.format(sys=sys, map={'kind': 'pc'})
'My pc runs linux'

在格式化字符串中通过下标(正整数)访问list元素

>>> somelist = list('SPAM')
>>> 'first={0[0]}, third={0[2]}'.format(somelist)
'first=S, third=A'
>>> 'first={0}, last={1}'.format(somelist[1], somelist[-1])
'first=P, last=M'
>>> parts = somelist[0], somelist[-1], somelist[1:-1]
>>> 'first={0}, last={1}, middle={2}'.format(*parts)
"first=S, last=M, middle=['P', 'A']"
>>>

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python中os和shutil模块实用方法集锦
May 13 Python
Python urllib、urllib2、httplib抓取网页代码实例
May 09 Python
python用10行代码实现对黄色图片的检测功能
Aug 10 Python
详解tensorflow实现迁移学习实例
Feb 10 Python
解决pandas .to_excel不覆盖已有sheet的问题
Dec 10 Python
Python八皇后问题解答过程详解
Jul 29 Python
在Python中字符串、列表、元组、字典之间的相互转换
Nov 15 Python
wxPython实现绘图小例子
Nov 19 Python
Windows10下Tensorflow2.0 安装及环境配置教程(图文)
Nov 21 Python
关于Pytorch MaxUnpool2d中size操作方式
Jan 03 Python
win10下opencv-python特定版本手动安装与pip自动安装教程
Mar 05 Python
Pycharm及python安装详细步骤及PyCharm配置整理(推荐)
Jul 31 Python
Python中字符串的常见操作技巧总结
Jul 28 #Python
Python中不同进制的语法及转换方法分析
Jul 27 #Python
深入理解Python装饰器
Jul 27 #Python
python批量制作雷达图的实现方法
Jul 26 #Python
python 添加用户设置密码并发邮件给root用户
Jul 25 #Python
Python文件夹与文件的相关操作(推荐)
Jul 25 #Python
浅谈python类属性的访问、设置和删除方法
Jul 25 #Python
You might like
一个php作的文本留言本的例子(五)
2006/10/09 PHP
更改localhost为其他名字的方法
2014/02/10 PHP
Zend Framework创建自己的动作助手详解
2016/03/05 PHP
PHP 获取 ping 时间的实现方法
2017/09/29 PHP
如何让页面在打开时自动刷新一次让图片全部显示
2012/12/17 Javascript
Ext4.2的Ext.grid.plugin.RowExpander无法触发事件解决办法
2014/08/15 Javascript
轻松使用jQuery双向select控件Bootstrap Dual Listbox
2015/12/13 Javascript
javascript简单比较日期大小的方法
2016/01/05 Javascript
javascript匀速运动实现方法分析
2016/01/08 Javascript
浅析JavaScript中浏览器的兼容问题
2016/04/19 Javascript
jQuery EasyUI Pagination实现分页的常用方法
2016/05/21 Javascript
JavaScript之RegExp_动力节点Java学院整理
2017/06/29 Javascript
Express使用html模板的详细代码
2017/09/18 Javascript
JS非行间样式获取函数的实例代码
2018/06/05 Javascript
ES6基础之展开语法(Spread syntax)
2019/02/21 Javascript
新手入门js闭包学习过程解析
2019/10/08 Javascript
原生JS实现留言板
2020/03/26 Javascript
JavaScript find()方法及返回数据实例
2020/04/30 Javascript
Python复数属性和方法运算操作示例
2017/07/21 Python
python实现爬取图书封面
2018/07/05 Python
Python实现求两个数组交集的方法示例
2019/02/23 Python
python获取txt文件词向量过程详解
2019/07/05 Python
Python 用三行代码提取PDF表格数据
2019/10/13 Python
Jupyter notebook无法导入第三方模块的解决方式
2020/04/15 Python
手把手教你将Flask应用封装成Docker服务的实现
2020/08/19 Python
高级运动鞋:GREATS
2019/07/19 全球购物
新锐科技Java程序员面试题
2016/07/25 面试题
通息工程毕业生自荐信
2013/10/16 职场文书
总经理文秘岗位职责
2014/02/03 职场文书
医药营销个人求职信范文
2014/02/07 职场文书
《小儿垂钓》教学反思
2014/02/23 职场文书
2014年大学生四年规划书范文
2014/04/03 职场文书
产品开发计划书
2014/04/27 职场文书
2014年个人工作总结模板
2014/12/15 职场文书
2015年采购员工作总结
2015/04/27 职场文书
高中升旗仪式主持词
2015/07/03 职场文书