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开发之for循环操作实例详解
Nov 12 Python
django model去掉unique_together报错的解决方案
Oct 18 Python
Python实现的字典排序操作示例【按键名key与键值value排序】
Dec 21 Python
Python操作MySQL数据库的两种方式实例分析【pymysql和pandas】
Mar 18 Python
使用Django简单编写一个XSS平台的方法步骤
Mar 25 Python
Python 函数list&amp;read&amp;seek详解
Aug 28 Python
springboot配置文件抽离 git管理统 配置中心详解
Sep 02 Python
python 的numpy库中的mean()函数用法介绍
Mar 03 Python
python操作链表的示例代码
Sep 27 Python
python中xlutils库用法浅析
Dec 29 Python
快速一键生成Python爬虫请求头
Mar 04 Python
python not运算符的实例用法
Jun 30 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 正则 过滤html 的超链接
2009/06/02 PHP
PHP教程 预定义变量
2009/10/23 PHP
php下通过IP获取地理位置的代码(小偷程序)
2011/06/09 PHP
浅谈使用 PHP 进行手机 APP 开发(API 接口开发)
2014/08/11 PHP
PHP微信开发之二维码生成类
2015/06/26 PHP
javascript 多浏览器 事件大全
2010/03/23 Javascript
JQuery Ajax通过Handler访问外部XML数据的代码
2010/06/01 Javascript
javascript继承之为什么要继承
2012/11/10 Javascript
JavaScript中读取和保存文件实例
2014/05/08 Javascript
详谈javascript精度问题与调整
2017/07/08 Javascript
JavaScript 完成注册页面表单校验的实例
2017/08/19 Javascript
小程序扫描普通链接二维码跳转小程序指定界面方法
2019/05/07 Javascript
jquery操作checkbox的常用方法总结【附测试源码下载】
2019/06/10 jQuery
vue 使用element-ui中的Notification自定义按钮并实现关闭功能及如何处理多个通知
2019/08/17 Javascript
vue实现输入一位数字转汉字功能
2019/12/13 Javascript
通过js随机函数Math.random实现乱序
2020/05/19 Javascript
Node使用koa2实现一个简单JWT鉴权的方法
2021/01/26 Javascript
[54:45]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 Optic vs OG
2018/04/02 DOTA
python多重继承新算法C3介绍
2014/09/28 Python
Python中Django发送带图片和附件的邮件
2017/03/31 Python
对python numpy数组中冒号的使用方法详解
2018/04/17 Python
Python系统监控模块psutil功能与经典用法分析
2018/05/24 Python
对Python中小整数对象池和大整数对象池的使用详解
2019/07/09 Python
pytorch 获取tensor维度信息示例
2020/01/03 Python
pytorch使用horovod多gpu训练的实现
2020/09/09 Python
SmartBuyGlasses意大利:购买太阳镜、眼镜和隐形眼镜
2018/11/20 全球购物
美国校服网上商店:French Toast
2019/10/08 全球购物
电子商务专业在校生实习自我鉴定
2013/09/29 职场文书
教师专业理论水平的自我评价分享
2013/11/09 职场文书
幼儿园教师教育感言
2014/02/28 职场文书
市场营销专业应届生自荐信
2014/06/19 职场文书
领导干部群众路线对照检查材料
2014/11/05 职场文书
小学数学教学反思范文
2016/02/16 职场文书
Python控制台输出俄罗斯方块的方法实例
2021/04/17 Python
如何制作自己的原生JavaScript路由
2021/05/05 Javascript
Redis Cluster 集群搭建你会吗
2021/08/04 Redis