Python基础回顾之-格式化字符串

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语言中的一样,但是这里我想特别说明rs的使用区别:

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.
字符串操作

  1. 补齐空白并对齐字符串

当我们要采用一个指定的长度输出字符串时,可能本身这个字符串并没有这么长,在C语言中我们曾经做过这样的操作,在Python中也有这样的操作,如果用到的话,请参考:https://pyformat.info/ 。
2. 截断长字符串


参见:https://pyformat.info/ 。
3. 截断和对齐操作的组合


参见:https://pyformat.info/ 。

数字操作

  1. 对齐数字

参见:https://pyformat.info/ 。
2. 给数字添加正负号


参见:https://pyformat.info/ 。

命名占位符

参见:https://pyformat.info/ 。

参考资料

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

联系我

Python基础回顾之-格式化字符串_第1张图片

你可能感兴趣的:(Python基础回顾之-格式化字符串)