字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串。
创建字符串很简单,只要为变量分配一个值即可。例如:
name = '二狗子'
habby = '撩妹'
job = '程序猿'
1、访问字符串中的值
可以根据索引去获取相应的字符串内的值,示例如下:
>>my_str = 'hello python'
>>print(my_str[0])
>>print(my_str[1])
>>print(my_str[8])
#输出结果为:
h
e
t
2、根据数据获取索引值
既然能通过索引获取数据,那么同样能通过数据获取相应的索引值,使用index()、rindex()、find()、rfind()方法。
语法:
参数:
示例如下:
>>my_str = 'hello python'
#通过index()方法进行查找
#从左侧开始查找,拿到查找的第一个数据
>>result01 = my_str.index('e')
>>print(result)
>>result02 = my_str.index('l')
>>print(result)
#输出结果为:
1
2
#从右侧开始查找,拿到查找的第一个数据
>>result03 = my_str.rindex('l')
>>print(result03)
#输出结果为:
3
#通过find()方法进行查找
#从左侧开始查找,拿到查找的第一个数据
>>result04 = my_str.find('e')
>>print(result04)
#输出结果为:
1
#从右侧开始查找,拿到查找的第一个数据
>>result05 = my_str.rfind('l')
>>print(result05)
#输出结果为:
3
注意:使用index()方法如果没有找到指定字符串会报错,使用find()方法如果没找到指定字符串就返回 -1
3、字符串的长度、字符串出现的次数
语法:
str.count(sub, start= 0,end=len(string))
参数:
sub -- 搜索的子字符串
start -- 字符串开始搜索的位置。默认为第一个字符,第一个字符索引值为0。
end -- 字符串中结束搜索的位置。字符中第一个字符的索引为 0。默认为字符串的最后一个位置。
>>my_str = 'hello python'
#字符串的长度使用len()方法
>>print(len(my_str))
#输出结果为
12
#字符串出现的次数使用count()方法
>>print(count('l'))
#输出结果为
2
4、替换字符串
语法:
str.replace(原字符串, 新字符串,替换个数)——参数根据字面意思就能理解不需要做解释了吧
注意:这里需要特别注意的一点是,由于字符串是不可变类型,当我们定义好了一个字符串并赋值之后,通过replace()方法去替换字符串,那么原来的字符串是不会改变的,替换之后会得到一个新的字符串。如下示例:
>>old_string = 'hello python'
>>new_string = old_string.replace('l','x',2)#replace()方法替换后得到新字符串并赋值给变量new_string,替换个数为2
>>print(old_string,new_string)
#输出结果为:
hello python hexxo python #我们发现虽然我们使用了replace(),但是原来的字符串并没有发生改变
5、字符串分割
语法:
参数
>>my_str = 'how are you fine thanks and you i am fine too'
>>list01 = my_str.split()#不加参数,默认以空格分割,分割所有
>>list03 = my_str.split('f')#以f为分隔符分割,默认分割所有
>>list02 = my_str.split('a',1)#以a为分隔符分割,分割1次
>>print(list01)
>>print(list02)
>>print(list03)
#输出结果为
['how', 'are', 'you', 'fine', 'thanks', 'and', 'you', 'i', 'am', 'fine', 'too']
['how ', 're you fine thanks and you i am fine too']
['how are you ', 'ine thanks and you i am ', 'ine too']
6、去掉开头和结尾指定字符
strip()方法用于溢出字符串头尾指定的字符(默认为空格)或字符序列,返回新的字符串。
注意:改方法只能删除开头或结尾的字符,不能删除中间部分的字符。
语法:
参数:
>>my_str = '*****hello python*****'
>>print(my_str.strip('*'))
>>print(my_str.rstrip('*'))
>>print(my_str.lstrip('*'))
#输出结果为:
hello python
*****hello python
hello python*****
7、字符串切片
切片操作可以从一个字符串中获取子字符串(字符串中的一部分)。使用一对方括号、起始偏移量(就是开始的地方)、终止偏移量以及步长来定义一个分片。
格式:[start:end:step]
几个特别的示例:
>>my_str = 'dfegekjlji'
#提取最后N个字符
>>print(my_str[-4:])
#从开头到结尾,步长为3
>>print(my_str[::3])
#将字符串倒转
>>print(my_str[::-1])
#输出结果为:
jlji
dgji
ijljkegefd
8、其他