Python中用format函数格式化字符串的用法


Posted in Python onApril 08, 2015

自python2.6开始,新增了一种格式化字符串的函数str.format(),可谓威力十足。那么,他跟之前的%型格式化字符串相比,有什么优越的存在呢?让我们来揭开它羞答答的面纱。
语法

它通过{}和:来代替%。
“映射”示例

通过位置

In [1]: '{0},{1}'.format('kzc',18) 
Out[1]: 'kzc,18' 
In [2]: '{},{}'.format('kzc',18) 
Out[2]: 'kzc,18' 
In [3]: '{1},{0},{1}'.format('kzc',18) 
Out[3]: '18,kzc,18'

字符串的format函数可以接受不限个参数,位置可以不按顺序,可以不用或者用多次,不过2.6不能为空{},2.7才可以。
通过关键字参数

In [5]: '{name},{age}'.format(age=18,name='kzc') 
Out[5]: 'kzc,18'

通过对象属性

class Person: 
  def __init__(self,name,age): 
    self.name,self.age = name,age 
    def __str__(self): 
      return 'This guy is {self.name},is {self.age} old'.format(self=self)
In [2]: str(Person('kzc',18)) 
Out[2]: 'This guy is kzc,is 18 old'

通过下标

In [7]: p=['kzc',18]
In [8]: '{0[0]},{0[1]}'.format(p)
Out[8]: 'kzc,18'

有了这些便捷的“映射”方式,我们就有了偷懒利器。基本的python知识告诉我们,list和tuple可以通过“打散”成普通参数给函数,而dict可以打散成关键字参数给函数(通过和*)。所以可以轻松的传个list/tuple/dict给format函数。非常灵活。
格式限定符

它有着丰富的的“格式限定符”(语法是{}中带:号),比如:

填充与对齐
填充常跟对齐一起使用
^、<、>分别是居中、左对齐、右对齐,后面带宽度
:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充
比如

In [15]: '{:>8}'.format('189')
Out[15]: '   189'
In [16]: '{:0>8}'.format('189')
Out[16]: '00000189'
In [17]: '{:a>8}'.format('189')
Out[17]: 'aaaaa189'

精度与类型f
精度常跟类型f一起使用

In [44]: '{:.2f}'.format(321.33345)
Out[44]: '321.33'

其中.2表示长度为2的精度,f表示float类型。

其他类型
主要就是进制了,b、d、o、x分别是二进制、十进制、八进制、十六进制。

In [54]: '{:b}'.format(17)
Out[54]: '10001'
In [55]: '{:d}'.format(17)
Out[55]: '17'
In [56]: '{:o}'.format(17)
Out[56]: '21'
In [57]: '{:x}'.format(17)
Out[57]: '11'

用,号还能用来做金额的千位分隔符。

In [47]: '{:,}'.format(1234567890)
Out[47]: '1,234,567,890'
Python 相关文章推荐
python爬虫常用的模块分析
Aug 29 Python
在Python中使用SimpleParse模块进行解析的教程
Apr 11 Python
python中redis的安装和使用
Dec 04 Python
python中实现精确的浮点数运算详解
Nov 02 Python
使用Python的Turtle绘制哆啦A梦实例
Nov 21 Python
python 实现快速生成连续、随机字母列表
Nov 28 Python
python如何使用jt400.jar包代码实例
Dec 20 Python
使用python3批量下载rbsp数据的示例代码
Dec 20 Python
python中Ansible模块的Playbook的具体使用
May 28 Python
Python爬虫爬取博客实现可视化过程解析
Jun 29 Python
Python爬虫之爬取淘女郎照片示例详解
Jul 28 Python
Keras在mnist上的CNN实践,并且自定义loss函数曲线图操作
May 25 Python
简单介绍Python中的JSON模块
Apr 08 #Python
Python实现把xml或xsl转换为html格式
Apr 08 #Python
Python正则表达式匹配HTML页面编码
Apr 08 #Python
在Python中关于中文编码问题的处理建议
Apr 08 #Python
Python脚本实现格式化css文件
Apr 08 #Python
Python实现获取操作系统版本信息方法
Apr 08 #Python
Python中实现对Timestamp和Datetime及UTC时间之间的转换
Apr 08 #Python
You might like
ThinkPHP验证码和分页实例教程
2014/08/22 PHP
tp5框架前台无限极导航菜单类实现方法分析
2020/03/29 PHP
JAVASCRIPT HashTable
2007/01/22 Javascript
date.parse在IE和FF中的区别
2010/07/29 Javascript
javascript常用代码段搜集
2014/12/04 Javascript
node.js中的url.format方法使用说明
2014/12/10 Javascript
基于JavaScript实现网页倒计时自动跳转代码
2015/12/28 Javascript
JavaScript字符串对象
2017/01/14 Javascript
Vue.js实现一个漂亮、灵活、可复用的提示组件示例
2017/03/17 Javascript
微信小程序页面间通信的5种方式
2017/03/31 Javascript
jQuery封装placeholder效果实现方法,让低版本浏览器支持该效果
2017/07/08 jQuery
基于vue2.0动态组件及render详解
2018/03/17 Javascript
详解vue中axios的封装
2018/07/18 Javascript
vue 地图可视化 maptalks 篇实例代码详解
2019/05/21 Javascript
Python基于PycURL自动处理cookie的方法
2015/07/25 Python
NumPy 如何生成多维数组的方法
2018/02/05 Python
PyQt5每天必学之拖放事件
2020/08/27 Python
在Python文件中指定Python解释器的方法
2019/02/18 Python
Django框架使用内置方法实现登录功能详解
2019/06/12 Python
Django自带日志 settings.py文件配置方法
2019/08/30 Python
python对Excel按条件进行内容补充(推荐)
2019/11/24 Python
解决Jupyter Notebook使用parser.parse_args出现错误问题
2020/04/20 Python
python中查看.db文件中表格的名字及表格中的字段操作
2020/07/07 Python
python3.5的包存放的具体路径
2020/08/16 Python
用HTML5实现手机摇一摇的功能的教程
2012/10/30 HTML / CSS
HTML5中外部浏览器唤起微信分享
2020/01/02 HTML / CSS
《记金华的双龙洞》教学反思
2014/04/19 职场文书
留学生求职信
2014/06/03 职场文书
社区矫正工作方案
2014/06/04 职场文书
国际商务专业求职信
2014/07/15 职场文书
学生会竞选演讲稿学习部
2014/08/25 职场文书
庆六一文艺汇演活动方案
2014/08/26 职场文书
班子群众路线教育实践个人对照检查材料思想汇报
2014/09/30 职场文书
个人买房协议书范本
2014/10/06 职场文书
2014年会计主管工作总结
2014/12/20 职场文书
财政局个人年终总结
2015/03/03 职场文书