字符串
字符串适用于所有标准的序列操作,但是字符串是不可变的,因此赋值等操作是不合法的。
字符串格式化
字符串使用百分号%来实现格式化操作。
>>> format = "Hello, %s. %s enough for ya?"
>>> values = ('world', 'Hot')
>>> print(format % values)
Hello, world. Hot enough for ya?
同时格式化多个值时使用元组或者字典。
格式化字符串中的%s成为转换说明符,该位置会被格式化为字符串。如果要格式化实数(浮点数),使用f,同时提供所需要的精度,如%.3f(小数点后3位)。
可以使用string模块来进行格式化:
from string import Template
>>> s = Template('$s, glorious $x!')
>>> s = Template('$x, glorious $x!')
>>> s.substitute(x='slurm')
'slurm, glorious slurm!'
具体的字符串格式化类型详见:http://www.cnblogs.com/nulige/p/6115793.html
两个可选参数:字段宽度(转换后所保留最小字符的个数)和精度(小数位数或转换后所能包含最大字符的个数)。
from math import pi
>>> '%10f' % pi
' 3.141593'
>>> '%.5s' % 'Guido va Rossum'
'Guido'
在字段宽度和精度之前还可以放置“标志”,如:零(0填充)、加号(标示出正负号)、减号(左对齐)、空格(正数前面添加空格)。
字符串方法
类似于列表方法的操作函数。
- find:在长字符串中查找子串,并返回最左端索引,如果没找到,返回-1。也可以提供起始和终止值指定的范围。类似于in运算符,但是find返回的是索引,而不是布尔值。
- join:连接序列中的元素,但是序列元素必须都是字符串。如:
>>> seq = ['1', '2', '3', '4', '5']
>>> sep = '+'
>>> sep.join(seq)
'1+2+3+4+5'
>>> dirs = '', 'usr', 'bin', 'env'
>>> '/'.join(dirs)
'/usr/bin/env'
- lower:发挥字符串的小写字母版,用于“不区分大小写”,如模糊查找系统。
- replace:查找并替换所有匹配项。
- split:join的逆方法。
>>> '1+2+3+4+5'.split('+')
['1', '2', '3', '4', '5']
- stripe:返回去除两侧(不包括内部)的空格(或者指定)字符串。
- translate:对单个字符串进行替换,可以同时进行多个替换,但是需要先完成一张转换表。
>>> table = str.maketrans('cs', 'kz')
'abcdefghijklmnopqrstuvwxyz'.translate(table)
'abkdefghijklmnopqrztuvwxyz'