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 定义给定初值或长度的list方法
Jun 23 Python
tensorflow实现图像的裁剪和填充方法
Jul 27 Python
Python GUI布局尺寸适配方法
Oct 11 Python
解决python字典对值(值为列表)赋值出现重复的问题
Jan 20 Python
python实现键盘输入的实操方法
Jul 16 Python
Django框架之登录后自定义跳转页面的实现方法
Jul 18 Python
Django对models里的objects的使用详解
Aug 17 Python
如何使用python实现模拟鼠标点击
Jan 06 Python
python使用Thread的setDaemon启动后台线程教程
Apr 25 Python
Matplotlib自定义坐标轴刻度的实现示例
Jun 18 Python
详解Python中的路径问题
Sep 02 Python
Python join()函数原理及使用方法
Nov 14 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
中国站长站 For Dede4.0 采集规则
2007/05/27 PHP
PHP实现时间轴函数代码
2011/10/08 PHP
Windows下部署Apache+PHP+MySQL运行环境实战
2012/08/31 PHP
php中array_unshift()修改数组key注意事项分析
2016/05/16 PHP
24条货真价实的PHP代码优化技巧
2016/07/28 PHP
利用php生成验证码
2017/02/23 PHP
js 通用javascript函数库整理
2011/08/14 Javascript
node.js下when.js 的异步编程实践
2014/12/03 Javascript
JavaScript动态加载样式表的方法
2015/03/21 Javascript
省市选择的简单实现(基于zepto.js)
2016/06/21 Javascript
基于Nodejs利用socket.io实现多人聊天室
2017/02/22 NodeJs
jQuery选择器之子元素选择器详解
2017/09/18 jQuery
移动web开发之touch事件实例详解
2018/01/17 Javascript
浅谈js获取ModelAndView值的问题
2018/03/28 Javascript
JavaScript继承与多继承实例分析
2018/05/26 Javascript
vue中如何让子组件修改父组件数据
2018/06/14 Javascript
vue自定义键盘信息、监听数据变化的方法示例【基于vm.$watch】
2019/03/16 Javascript
node使用mysql获取数据库数据中文乱码问题的解决
2019/12/02 Javascript
详解javascript void(0)
2020/07/13 Javascript
[04:22]DOTA2上海特级锦标赛主赛事第四日TOP10
2016/03/06 DOTA
Python中列表的一些基本操作知识汇总
2015/05/20 Python
Python提取支付宝和微信支付二维码的示例代码
2019/02/15 Python
详解Python是如何实现issubclass的
2019/07/24 Python
Python  Django 母版和继承解析
2019/08/09 Python
Django实现auth模块下的登录注册与注销功能
2019/10/10 Python
解决python 上传图片限制格式问题
2019/10/30 Python
Python实现石头剪刀布游戏
2021/01/20 Python
CSS3教程:边框属性border的极致应用
2009/04/02 HTML / CSS
CSS3实现圆角、阴影、透明效果并兼容各大浏览器
2014/08/08 HTML / CSS
HTML5 canvas基本绘图之填充样式实现
2016/06/27 HTML / CSS
初中班主任评语
2014/04/24 职场文书
五一劳动节演讲稿
2014/09/12 职场文书
医院护士党的群众路线教育实践活动对照检查材料思想汇报
2014/10/04 职场文书
批评与自我批评发言稿
2014/10/15 职场文书
导游词之贵州织金洞
2019/10/12 职场文书
Python查找算法的实现 (线性、二分,分块、插值查找算法)
2022/04/24 Python