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高级应用实例对比:高效计算大文件中的最长行的长度
Jun 08 Python
简单介绍使用Python解析并修改XML文档的方法
Oct 15 Python
关于Python元祖,列表,字典,集合的比较
Jan 06 Python
Python入门_浅谈for循环、while循环
May 16 Python
Python2与python3中 for 循环语句基础与实例分析
Nov 20 Python
django 按时间范围查询数据库实例代码
Feb 11 Python
Python读取mat文件,并保存为pickle格式的方法
Oct 23 Python
Python实现Mysql数据统计及numpy统计函数
Jul 15 Python
python爬虫 爬取超清壁纸代码实例
Aug 16 Python
python能做什么 python的含义
Oct 12 Python
python实现感知机模型的示例
Sep 30 Python
python gui开发——制作抖音无水印视频下载工具(附源码)
Feb 07 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
PHP stripos()函数及注意事项的分析
2013/06/08 PHP
php实现文件下载(支持中文文名)
2013/12/04 PHP
Thinkphp搭建包括JS多语言的多语言项目实现方法
2014/11/24 PHP
php实现阿拉伯数字和罗马数字相互转换的方法
2015/04/17 PHP
分享PHP函数实现数字与文字分页代码
2015/07/28 PHP
phalcon model在插入或更新时会自动验证非空字段的解决办法
2016/12/29 PHP
PHP使用反向Ajax技术实现在线客服系统详解
2019/07/01 PHP
php 使用expat方式解析xml文件操作示例
2019/11/26 PHP
JavaScript的类型简单说明
2010/09/03 Javascript
jquery Mobile入门—外部链接切换示例代码
2013/01/08 Javascript
jquery滚动加载数据的方法
2015/03/09 Javascript
jQuery form插件之ajaxForm()和ajaxSubmit()的可选参数项对象
2016/01/23 Javascript
js实现String.Fomat的实例代码
2016/09/02 Javascript
jQuery实现可展开折叠的导航效果示例
2016/09/12 Javascript
jQuery+ajax实现局部刷新的两种方法
2017/06/08 jQuery
Vue 使用中的小技巧
2018/04/26 Javascript
JavaScript JMap类定义与使用方法示例
2019/01/22 Javascript
js实现掷骰子小游戏
2019/10/24 Javascript
使用JavaScript实现网页秒表功能(含开始、暂停、继续、重置功能)
2020/06/05 Javascript
Django中模型Model添加JSON类型字段的方法
2015/06/17 Python
利用Python将时间或时间间隔转为ISO 8601格式方法示例
2017/09/05 Python
500行Python代码打造刷脸考勤系统
2019/06/03 Python
Python *args和**kwargs用法实例解析
2020/03/02 Python
python+selenium+chromedriver实现爬虫示例代码
2020/04/10 Python
HTML5的自定义属性data-*详细介绍和JS操作实例
2014/04/10 HTML / CSS
详解HTML5中表单验证的8种方法介绍
2016/12/19 HTML / CSS
挑战杯创业计划书的写作指南
2014/01/07 职场文书
关于责任的演讲稿
2014/05/20 职场文书
银行授权委托书格式
2014/10/10 职场文书
2014年公务员个人工作总结
2014/11/22 职场文书
五一劳动节慰问信
2015/02/14 职场文书
郭明义观后感
2015/06/08 职场文书
英雄儿女观后感
2015/06/09 职场文书
浅谈Python中的函数(def)及参数传递操作
2021/05/25 Python
MySQL子查询中order by不生效问题的解决方法
2021/08/02 MySQL
python的html标准库
2022/04/29 Python