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实现简易端口扫描器代码实例
Mar 15 Python
Django卸载之后重新安装的方法
Mar 15 Python
Python 实现数据库更新脚本的生成方法
Jul 09 Python
Python编程之字符串模板(Template)用法实例分析
Jul 22 Python
简单了解Django模板的使用
Dec 20 Python
django admin添加数据自动记录user到表中的实现方法
Jan 05 Python
Python 正则表达式爬虫使用案例解析
Sep 23 Python
django 文件上传功能的相关实例代码(简单易懂)
Jan 22 Python
python+opencv边缘提取与各函数参数解析
Mar 09 Python
pycharm第三方库安装失败的问题及解决经验分享
May 09 Python
详解python tcp编程
Aug 24 Python
python“静态”变量、实例变量与本地变量的声明示例
Nov 13 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
php 上一篇,下一篇文章实现代码与原理说明
2010/05/09 PHP
php实现图片缩放功能类
2013/12/18 PHP
thinkphp3.0输出重复两次的解决方法
2014/12/19 PHP
php启用sphinx全文搜索的实现方法
2014/12/24 PHP
Laravel6.0.4中将添加计划任务事件的方法步骤
2019/10/15 PHP
JQuery 文本框使用小结
2010/05/22 Javascript
jquery获取ASP.NET服务器端控件dropdownlist和radiobuttonlist生成客户端HTML标签后的value和text值
2010/06/28 Javascript
学习从实践开始之jQuery插件开发 对话框插件开发
2012/04/26 Javascript
判断输入的字符串是否是日期格式的简单方法
2016/07/11 Javascript
AngularJS基础 ng-if 指令用法
2016/08/01 Javascript
jQuery实现为LI列表前3行设置样式的方法【2种方法】
2016/09/04 Javascript
jQuery实现表格文本框淡入更改值后淡出效果
2016/09/27 Javascript
javascript编写简易计算器
2017/05/06 Javascript
基于Bootstrap框架菜鸟入门教程(推荐)
2017/09/17 Javascript
JS实现的简单四则运算计算器功能示例
2017/09/27 Javascript
NodeJs生成sitemap站点地图的方法示例
2019/06/11 NodeJs
微信小程序动态设置图片大小的方法
2019/11/21 Javascript
在vue中配置不同的代理同时访问不同的后台操作
2020/09/11 Javascript
Python 绘图和可视化详细介绍
2017/02/11 Python
pandas系列之DataFrame 行列数据筛选实例
2018/04/12 Python
python numpy格式化打印的实例
2018/05/14 Python
解决pandas .to_excel不覆盖已有sheet的问题
2018/12/10 Python
tensorflow求导和梯度计算实例
2020/01/23 Python
Python tornado上传文件的功能
2020/03/26 Python
在PyTorch中使用标签平滑正则化的问题
2020/04/03 Python
Python3.7在anaconda里面使用IDLE编译器的步骤详解
2020/04/29 Python
keras实现多GPU或指定GPU的使用介绍
2020/06/17 Python
python操作微信自动发消息的实现(微信聊天机器人)
2020/07/14 Python
会计专业自荐信范文
2013/12/02 职场文书
民生工作实施方案
2014/05/31 职场文书
环境保护标语
2014/06/20 职场文书
家长会标语
2014/06/24 职场文书
2014年反洗钱工作总结
2014/11/22 职场文书
浅谈Laravel中使用Slack进行异常通知
2021/05/29 PHP
Android自定义双向滑动控件
2022/04/19 Java/Android
python神经网络Xception模型
2022/05/06 Python