Python基础回顾之-格式化字符串
概述
学过C语言的人或许会想到,在Python中是否有和C语言中一样的格式化操作符呢?答案是肯定的,下面我将详细的讨论这部分内容,将要介绍的格式计划方法适用于Python 2.7、3.2、3.3、3.4,也就是在以上提及的版本中,不需要添加任何额外的库支持。
格式化风格
在Python 2.6之后,出现了两种格式化字符串的方法,分别是采用%
和.format()
,%
方法可能是我们经常会去使用的方法,它一般被使用在:1. 参数的顺序不大可能发生变化;2. 并且你基本上不会去连接元素。但是.format()
格式改进了这个上述的两个问题,分别实现了:1. 给参数指定顺序;2. 简单的实现元素的连接。下面举一个简单的例子,
例1:
print '%s %s' % ('one','two') #这是旧版本的方法
print '{} {}'.format('one','two') #这是新版本的方法
结果显示为:
one two
one two
例2:
print %d %d' % (1,2)
print '{} {}'.format(1,2)
结果显示为:
1 2
1 2
在Python 2.6之后的版本,有一种新的格式化风格,它允许你在.format()
格式中添加索引,看下面的代码:
print '{1} {0}'.format('one','two')
结果显示为:
two one #从结果中我们知道,爱格式化字符串中指定了参数的顺序,这是`%`方法不能实现的。
不同变量类型的格式化方法
格式化符 | 含义 |
---|---|
d |
有符号十进制整数 |
i |
有符号十进制整数 |
o |
有符号八进制整数 |
x |
有符号十六进制整数 |
X |
有符号十六进制整数 |
e |
指数格式的浮点数 |
E |
指数格式的浮点数 |
f |
小数格式的浮点数 |
F |
小数格式的浮点数 |
g |
当指数小于-4时采用e 格式,否则采用f 格式 |
G |
同上 |
c |
单个ASCII字符 |
r |
输出为字符串,但各种转义字符都将无效 |
s |
字符串,但是转义字符是有效的 |
%% |
输出% |
从上面的结果中我们可以确定的是:在Python中的格式化字符串和C语言中的完全一样,只是这些格式化串的使用方法不同。
其他的字符和C语言中的一样,但是这里我想特别说明r
和s
的使用区别:
print '%s is a good boy.' % ('zhu\tjun\tpeng\t')
print '%r is a good boy.' % ('zhu\tjun\tpeng\t')
print '{0!s} is a good boy.'.format('zhu\tjun\tpeng\t')
print '{0!r} is a good boy.'.format('zhu\tjun\tpeng\t')
结果显示为:
zhu jun peng is a good boy.
zhu\tjun\tpeng\t is a good boy.
zhu jun peng is a good boy.
zhu\tjun\tpeng\t is a good boy.
字符串操作
- 补齐空白并对齐字符串
当我们要采用一个指定的长度输出字符串时,可能本身这个字符串并没有这么长,在C语言中我们曾经做过这样的操作,在Python中也有这样的操作,如果用到的话,请参考:https://pyformat.info/ 。
2. 截断长字符串
参见:https://pyformat.info/ 。
3. 截断和对齐操作的组合
数字操作
- 对齐数字
参见:https://pyformat.info/ 。
2. 给数字添加正负号
命名占位符
参考资料
1.https://docs.python.org/3/library/string.html#string-formatting
2.https://docs.python.org/2/library/stdtypes.html#string-formatting
3.https://pyformat.info/
4.http://www.cnblogs.com/wilber2013/p/4641616.html
联系我
作者:朱君鹏
原文链接:https://blog.csdn.net/jpzhu16/article/details/50782124
转载请注明:www.ainoob.cn » Python基础回顾之-格式化字符串