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程序与C程序的结合使用
Apr 07 Python
使用Python的Twisted框架编写简单的网络客户端
Apr 16 Python
python查看FTP是否能连接成功的方法
Jul 30 Python
TensorFlow深度学习之卷积神经网络CNN
Mar 09 Python
Python开发虚拟环境使用virtualenvwrapper的搭建步骤教程图解
Sep 19 Python
Python函数定义及传参方式详解(4种)
Mar 18 Python
解决django model修改添加字段报错的问题
Nov 18 Python
numpy.ndarray 实现对特定行或列取值
Dec 05 Python
如何基于python实现不邻接植花
May 01 Python
用python自动生成日历
Apr 24 Python
如何利用Matlab制作一款真正的拼图小游戏
May 11 Python
Python 如何将integer转化为罗马数(3999以内)
Jun 05 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
CentOS6.5 编译安装lnmp环境
2014/12/21 PHP
php获取当月最后一天函数分享
2015/02/02 PHP
PHP简单判断字符串是否包含另一个字符串的方法
2016/03/25 PHP
Smarty模板变量调节器用法分析
2016/05/23 PHP
PHP Filter过滤器全面解析
2016/08/09 PHP
php实现和c#一致的DES加密解密实例
2017/07/24 PHP
PHP使用glob方法遍历文件夹下所有文件的实例
2018/10/17 PHP
JavaScript 学习点滴记录
2009/04/24 Javascript
IE8 内存泄露(内存一直增长 )的原因及解决办法
2016/04/06 Javascript
KVM虚拟化技术之使用Qemu-kvm创建和管理虚拟机的方法
2016/10/05 Javascript
Bootstrap导航条学习使用(一)
2017/02/08 Javascript
jQuery查找dom的几种方法效率详解
2017/05/17 jQuery
Cpage.js给组件绑定事件的实现代码
2017/08/31 Javascript
浅谈node.js 命令行工具(cli)
2018/05/10 Javascript
浅谈Angular 观察者模式理解
2018/11/01 Javascript
vue项目中常见问题及解决方案(推荐)
2019/10/21 Javascript
Vue仿百度搜索功能
2020/12/28 Vue.js
聊聊vue 中的v-on参数问题
2021/01/29 Vue.js
python二分法实现实例
2013/11/21 Python
解决python线程卡死的问题
2019/02/18 Python
Python参数解析模块sys、getopt、argparse使用与对比分析
2019/04/02 Python
Python HTML解析模块HTMLParser用法分析【爬虫工具】
2019/04/05 Python
python字符串分割及字符串的一些常规方法
2019/07/24 Python
详解Pycharm出现out of memory的终极解决方法
2020/03/03 Python
keras的backend 设置 tensorflow,theano操作
2020/06/30 Python
世界上最大的糖果店:Dylan’s Candy Bar
2017/11/07 全球购物
校园门卫岗位职责
2013/12/09 职场文书
数控技校生自我鉴定
2014/03/02 职场文书
高校教师自荐信范文
2014/03/13 职场文书
金融系应届毕业生求职信
2014/05/26 职场文书
医德医风自我评价
2014/09/19 职场文书
纪检部部长竞选稿
2015/11/21 职场文书
详解Django中 render() 函数的使用方法
2021/04/22 Python
Mysql systemctl start mysqld报错的问题解决
2021/06/03 MySQL
《地。-关于地球的运动-》单行本第七集上市,小说家朝井辽献上期待又害怕的推荐文
2022/03/31 日漫
排查并解决MySQL生产库内存使用率高的报警
2022/04/11 MySQL