Python字符串格式化


Posted in Python onJune 15, 2015

在许多编程语言中都包含有格式化字符串的功能,比如C和Fortran语言中的格式化输入输出。Python中内置有对字符串进行格式化的操作%。

模板

格式化字符串时,Python使用一个字符串作为模板。模板中有格式符,这些格式符为真实值预留位置,并说明真实数值应该呈现的格式。Python用一个tuple将多个值传递给模板,每个值对应一个格式符。

比如下面的例子:

print("I'm %s. I'm %d year old" % ('Vamei', 99))

上面的例子中,

"I'm %s. I'm %d year old" 为我们的模板。%s为第一个格式符,表示一个字符串。%d为第二个格式符,表示一个整数。('Vamei', 99)的两个元素'Vamei'和99为替换%s和%d的真实值。
在模板和tuple之间,有一个%号分隔,它代表了格式化操作。

整个"I'm %s. I'm %d year old" % ('Vamei', 99) 实际上构成一个字符串表达式。我们可以像一个正常的字符串那样,将它赋值给某个变量。比如:

a = "I'm %s. I'm %d year old" % ('Vamei', 99)

print(a)

我们还可以用词典来传递真实值。如下:

print("I'm %(name)s. I'm %(age)d year old" % {'name':'Vamei', 'age':99})

可以看到,我们对两个格式符进行了命名。命名使用()括起来。每个命名对应词典的一个key。

格式符

格式符为真实值预留位置,并控制显示的格式。格式符可以包含有一个类型码,用以控制显示的类型,如下:

%s    字符串 (采用str()的显示)

%r    字符串 (采用repr()的显示)

%c    单个字符

%b    二进制整数

%d    十进制整数

%i    十进制整数

%o    八进制整数

%x    十六进制整数

%e    指数 (基底写为e)

%E    指数 (基底写为E)

%f    浮点数

%F    浮点数,与上相同

%g    指数(e)或浮点数 (根据显示长度)

%G    指数(E)或浮点数 (根据显示长度)

%%    字符"%"

可以用如下的方式,对格式进行进一步的控制:

%[(name)][flags][width].[precision]typecode

(name)为命名

flags可以有+,-,' '或0。+表示右对齐。-表示左对齐。' '为一个空格,表示在正数的左侧填充一个空格,从而与负数对齐。0表示使用0填充。

width表示显示宽度

precision表示小数点后精度

比如:

print("%+10x" % 10)

print("%04d" % 5)

print("%6.3f" % 2.3)

上面的width, precision为两个整数。我们可以利用*,来动态代入这两个量。比如:

print("%.*f" % (4, 1.2))

Python实际上用4来替换*。所以实际的模板为"%.4f"。

例子:

In [1]: "%(name)s is %(age)s" % {"name":"bob", "age": 12}

Out[1]: 'bob is 12'

In [2]: "%s is %s" % ("bob", "13")

Out[2]: 'bob is 13'

In [6]: "{0} is {1}".format("bob", "14")

Out[6]: 'bob is 14'

In [7]: "{name} is {age}".format(name="bob",age="15")

Out[7]: 'bob is 15'

总结

Python中内置的%操作符可用于格式化字符串操作,控制字符串的呈现格式。Python中还有其他的格式化字符串的方式,但%操作符的使用是最方便的。

以上所述就是本文的全部内容了,希望大家能够喜欢。

Python 相关文章推荐
零基础写python爬虫之抓取百度贴吧并存储到本地txt文件改进版
Nov 06 Python
python文件操作之目录遍历实例分析
May 20 Python
Python实现求解一元二次方程的方法示例
Jun 20 Python
python 多个参数不为空校验方法
Feb 14 Python
python实现批量注册网站用户的示例
Feb 22 Python
python使用参数对嵌套字典进行取值的方法
Apr 26 Python
Django框架 查询Extra功能实现解析
Sep 04 Python
详解在python操作数据库中游标的使用方法
Nov 12 Python
Python turtle实现贪吃蛇游戏
Jun 18 Python
python turtle绘图命令及案例
Nov 23 Python
PO模式在selenium自动化测试框架的优势
Mar 20 Python
Python Pytorch查询图像的特征从集合或数据库中查找图像
Apr 09 Python
Java中重定向输出流实现用文件记录程序日志
Jun 12 #Python
Python2中的raw_input() 与 input()
Jun 12 #Python
Windows下实现Python2和Python3两个版共存的方法
Jun 12 #Python
Python3中的2to3转换工具使用示例
Jun 12 #Python
Python中unittest模块做UT(单元测试)使用实例
Jun 12 #Python
搞笑的程序猿:看看你是哪种Python程序员
Jun 12 #Python
Python 3.x 新特性及10大变化
Jun 12 #Python
You might like
windows下升级PHP到5.3.3的过程及注意事项
2010/10/12 PHP
php过滤敏感词的示例
2014/03/31 PHP
微信公众平台开发教程⑥ 微信开发集成类的使用图文详解
2019/04/10 PHP
Laravel使用模型实现like模糊查询的例子
2019/10/24 PHP
不要小看注释掉的JS 引起的安全问题
2008/12/27 Javascript
jquery select(列表)的操作(取值/赋值)
2009/08/06 Javascript
JSQL SQLProxy 的 php 版本代码
2010/05/05 Javascript
JQuery小知识
2010/10/15 Javascript
javascript中的绑定与解绑函数应用示例
2013/06/24 Javascript
实现动画效果核心方式的js代码
2013/09/27 Javascript
异步安全加载javascript文件的方法
2015/07/21 Javascript
js实现跨域的几种方法汇总(图片ping、JSONP和CORS)
2015/10/25 Javascript
基于Jquery和html5的7款个性化地图插件
2015/11/17 Javascript
BootStrap创建响应式导航条实例代码
2016/05/31 Javascript
JS实现含有中文字符串的友好截取功能分析
2017/03/13 Javascript
Node.js服务器开启Gzip压缩教程
2017/08/11 Javascript
vue-router实现tab标签页(单页面)详解
2017/10/17 Javascript
vue 组件间的通信之子组件向父组件传值的方式
2020/07/29 Javascript
[03:00]2014DOTA2国际邀请赛 Titan淘汰潸然泪下Ohaiyo专访
2014/07/15 DOTA
python中的列表推导浅析
2014/04/26 Python
零基础学Python(一)Python环境安装
2014/08/20 Python
Python调用scp向服务器上传文件示例
2019/12/22 Python
Python基于当前时间批量创建文件
2020/05/07 Python
Python collections.defaultdict模块用法详解
2020/06/18 Python
利用canvas实现图片压缩的示例代码
2018/07/17 HTML / CSS
澳大利亚天然护肤品、化妆品和健康产品一站式商店:Nourished Life
2018/12/02 全球购物
教师实习自我鉴定
2013/12/14 职场文书
2014学雷锋活动总结
2014/03/09 职场文书
法英专业大学生职业生涯规划书范文
2014/09/22 职场文书
欢迎家长标语
2014/10/08 职场文书
家长评语怎么写
2014/12/30 职场文书
大学生思想道德自我评价
2015/03/09 职场文书
2015年新农村建设指导员工作总结
2015/07/24 职场文书
2016党员读书思廉心得体会
2016/01/23 职场文书
2016年中学清明节活动总结
2016/04/01 职场文书
vue3使用vue-router的完整步骤记录
2021/06/20 Vue.js