第五章 字符串的基础操作

python中,对字符串的操作是最常见的,python对字符串操作有自己特殊的处理方式,对字符串的操作有一些简便的方式,能够很容易很形象的理解字符串操作。

字符串的截取

截取字符串中特有性质的字符串,是操作字符的常见的方式,比如通过url来截取网页名称,在分析网页字符串的时候,截取关键的内容,是字符操作重要的方式。

s = '123456789'
#截取中间的两个字符
s[1:3]
#输出为:'23'
#从某个位置到结尾
s[4:]
#输出为:'56789'
#字符串的顺序不仅仅可以顺着数,也可以逆着数
s[-8:7]
#输出为'234567',这个在截取文件名称时是比较有用的,比如用s[-3:],可以得到最后三位的字符串。

对于pytho的索引可以这样的理解下标的含义:索引是正数应该从开头数起,例如3表示从开头数的第三个元素,索引是负数从结尾数起,例如-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 格式化无符号十六进制数
%f 格式化浮点数字,可指定小数点后的精度
%e 用科学计数法格式化浮点数
%E 作用同%e,用科学计数法格式化浮点数
%g 根据值的大小决定使用%f活%e
%G 作用同%g,根据值的大小决定使用%f活%e
%p 用十六进制数格式化变量的地址

通过type关键字,可以查看变量的类型。

字符串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”,这样我们就可以替换其中的数据了。

总结

字符串的处理在实际项目中是最经常碰到的,上面介绍了最常用的几种方式,把这几种方式结合在一起可以变换出各种不同的字符处理,熟悉的掌握字符串的特性和处理方式,在编程过程中能够轻松的对字符串进行变换。

继续阅读


来自您的鼓励

如果您感觉这一系列的教程,读后有点收获,并对知识有点了解,不妨小额捐助我一下,让我有动力继续写出更多好文章;或者在评论区留下你的意见。

所有评论

写了这么多年博客,收到的优秀评论少之又少。在这个属于 SNS 的时代也并不缺少向作者反馈的渠道。

还没有评论

撰写评论