曾经有一位'身经百战'的程序员大佬说过:"开发一个项目,其实就是在不断的处理字符串"。元芳,这句话你怎么看?
字符串几乎是所有编程语言在项目开发过程中都会涉及最多的一块内容。大部分项目的运行结果也都会以字符串的形式呈现给客户。例如财务的报表、电子游戏的比赛结果、火车到站的时间表等。
字符串拼接
字符串的拼接主要是使用的是'+'运算符,它可以将多个字符串拼接生成一个新的字符串。
str1 = 'A hero is temporary,'
str2 = 'But a legend is forever'
str = str1 + str2print(str)
# A hero is temporary,But a legend is forever
注意
在拼接的过程中一定注意需要python不允许与其他类型的数据直接拼接,否则就会报类型不匹配错误
str1 = '我今天赚了'
num = 10000
str2 = '美刀'
print(str1 + num +str2)
# TypeError: can only concatenate str (not "int") to str
如何解决该问题呢?方法就是先去转换类型,之后再进行拼接。将数字类型的1000使用str()方法转换成字符类型即可拼接。
str1 = '我今天赚了'
num = 10000 str2 = '美刀'
print(str1 + str(num) +str2)
# 我今天赚了10000美刀
计算字符串长度
在python中,计算字符串的长度一般使用len()方法,它的语法格式如下:
len(string)
例如定义一个字符串
str = '人生苦短,我用python' print(len(str))
# 13
可以看出,默认情况下len()方法计算字符串长度的方式是中文长度+英文+符号的。
但是在实际开发中,有时需要获取字符串的实际所占的字节数。如果使用UTF-8编码时,汉字占3个字节,如果使用的是GBK/GB2312编码时,则汉字占2个字节。
那么我们获取的到底是哪种编码的长度呢?这时候就需要encode()方法了。
encode()方法可以将字符串按需编码然后获取你想要的编码长度。
str = '人生苦短,我用python'
print(len(str.encode('UTF-8'))) #计算utf-8编码的字符串长度
# 25
print(len(str.encode('GBK'))) #计算gbk编码的字符串长度
# 19
截取字符串
字符串同之前说的列表、元组一样同属序列。所以截取也可以采用切片操作。
语法格式如下
string[start : end :step]
参数说明
string: 指的是要截取的字符串;
start: 指的是截取字符串的第一个索引,包括第一个。如果不指定,默认为0。
end:指的是截取字符串的最后一个索引,不包括最后一个。如果不指定,默认为字符串的长度。
step:表示切片的步长,如果省略,默认为1,当该参数省略时,前面的符号也可省略。
注意字符串的索引和序列的索引一样,都是从0开始的!
str = '人生苦短,我用python'
substr1 = str[1] #截取第2个字符
print(substr1) #生
substr2 = str[5:] #从第6个字符串开始截取
print(substr2) #我用python
substr3 = str[:5] #从左边开始截取5个字符
print(substr3) #人生苦短,
substr4 = str[2:5] #截取从第3个到第5个 print(substr4) #苦短,
分割字符串
在python中,字符串对象提供了分割字符串的方法,它是将字符串分割为列表。
字符串对象的split()方法可以实现对字符串的分割,也就是说把一个字符串按照指定的分隔符分为字符串列表,该列表的元素中不再包含字符分割符。
语法如下
str.split(sep ,maxsplit)
参数说明
str: 表示要分割的字符串
sep: 用于指定分隔符,默认为空格
maxsplit:可选参数,用于指定分割的次数。如果不指定默认为-1,代表分割没有次数限制。返回元素的个数为最多为maxsplit + 1。
返回值:分割后的字符串列表。
str = '人生,短短几个 秋啊'
print('原字符串:',str)
#原字符串: 人生,短短几个 秋啊
list1 = str.split()
#打印原字符串print(list1)
#['人生,短短几个', '秋啊']
list2 = str.split(',')
#按照','分割字符串
print(list2)
#['人生', '短短几个 秋啊']
list3 = str.split(' ',2)
#按照空格分割两次,返回的元素个数是maxsplit+1print(list3)
#['人生,短短几个', '', ' 秋啊']
检索字符串
在python中,字符串对象提供了很多关于字符串查找的方法。
1.find()方法
find()方法用于检索是否包含指定的子字符串,如果该字符串不存在,返回-1。否则返回子字符串的索引。语法格式如
str.find(sub[,start[,end]])
str :表示原字符串。
sub: 表示要检索的字符串。
start: 表示检索参数的起始范围,默认从头开始检索。
end: 表示检索参数的结束位置。不指定则一直检索到末尾。
str = '弃我去者昨日之日不可留'
print('之的位置:' , str.find('之'))
#查询字符串中首次出现之的位置
# 之的位置: 6
如果找不到值指定的子字符串,则返回-1。
str = '弃我去者昨日之日不可留'
print('蜀的位置:' , str.find('蜀'))
# 蜀的位置: -1
说明
python的字符串还提供了rfind()方法,与find()方法的区别之处就在于它是从右边开始查找的。
2.count()方法
count()方法用于检索指定字符串在另一个字符串中出现的次数,如果该字符串不存在,返回0。否则返回元素的个数。语法格式如下
str.count(sub[, start[, end]])
fishlist = '牛鲨、大白鲨、虎鲨、亚马逊鲇鱼、大头鱼、尼罗河鲈鱼、新几内亚鲈鱼、王鲑、六须鲇、巨骨舌鱼、鳄雀鳝'
print('带鱼字的鱼有共计:',fishlist.count('鱼'),'种')
#带鱼字的鱼有共计: 5 种
好了,感谢阅读 本期到此为止!
下期咱们看看全公司只有一个人会的神工具库!
网友评论