python中,对字符串的操作是最常见的,python对字符串操作有自己特殊的处理方式。
字符串的截取
python中对于字符串的索引是比较特别的,来感受一下:
s = '123456789'
#截取中间的两个字符
s[1:3]
#输出为:'23'
#从某个位置到结尾
s[4:]
#输出为:'56789'
#字符串的顺序不仅仅可以顺着数,也可以逆着数
s[-8:7]
#输出为'234567',这个在截取文件名称时是比较有用的,比如用s[-3:],可以得到最后三位的字符串。
字符串的查找
查找当前字符串中,是否包含另外的字符串。
我们可以使用 index,或者find来进行查找,find和index的区别是,如果使用的是index的话,字符串查找中,如果找不到相应的字符串,会抛出一个ValueError的异常。
s = '123456789'
s.index('23')
#输出:1
s.find('23')
#输出:1
s.index('s')
#输出
Traceback (most recent call last):
File "", line 1, in
ValueError: substring not found
s.find('s')
#输出 -1
分割字符串
总是有很多特殊字符,可以用来分割字符串。数据库中经常把一组照片放在一个字段中,比如
img1.jpg@@@img2.jpg@@@img3.jpg
需要把不定长的照片都取出来,就需要同特殊字符把字符串分开,得到不同的照片。
分割的命令为split
s = 'img1.jpg@@@img2.jpg@@@img3.jpg'
s.split('@@@')
#结果为一个数值:['img1.jpg', 'img2.jpg', 'img3.jpg']
字符串格式化
Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。
在 Python 中,字符串格式化使用与 C 中 sprintf 函数一样的语法。
#!/usr/bin/python
print "My name is %s and weight is %d kg!" % ('Zara', 21)
#以上实例输出结果: My name is Zara and weight is 21 kg!
python字符串格式化符号:
%c 格式化字符及其ASCII码 %s 格式化字符串 %d 格式化整数 %u 格式化无符号整型 %o 格式化无符号八进制数 %x 格式化无符号十六进制数 %X 格式化无符号十六进制数(大写) %f 格式化浮点数字,可指定小数点后的精度 %e 用科学计数法格式化浮点数 %E 作用同%e,用科学计数法格式化浮点数 %g 根据值的大小决定使用%f活%e %G 作用同%g,根据值的大小决定使用%f活%e %p 用十六进制数格式化变量的地址 符 号描述
字符串Template化
在python中Template可以将字符串的格式固定下来,重复利用。
Template属于string中的一个类,要使用他的话可以用以下方式调用:
from string import Template
我们使用以下代码:
>>> s = Template('There ${moneyType} is ${money}')
>>> print s.substitute(moneyType = 'Dollar',money=12)
运行结果显示“There Dollar is 12”
这样我们就可以替换其中的数据了。