一、字符串操作概念
字符串可以看作多个字符的按照先后顺序组合,相当于就是序列结构,意味着可以对它进行遍历、切片。
遍历:逐个获取字符串的每个字符
二、访问字符串中的字符
(通过字符下标访问到字符串的每个字符)
获取字符串中的字符
#下标:字符串中字符的位置,下标从0开始为0 1 2,也可以从最后一个开始往前为-1 -2
#字符串[下标值] 获取 字符串中的字符
str_test = "hello world"
print( str_test[6] )
print( str_test[10] )
print( type(str_test[6]) ) # 类型还是字符串
输出
w
d
<class 'str'>
三、字符串中的切片
字符串[(起始位置):(结束位置):步长] 在字符串中获取的多个字符
#起始位置:从字符串的哪个下标开始 。如果省略:默认从整个字符串开始位置下标
#结束位置:到字符串的哪个下标结束,注意,结束位置是下标的数字加一。如果 省略:默认到整个字符串结束的下一个位置下标
#步长:相邻几个字符取第一个字符 。如果省略:默认步长为 1 对于步长为负数,默认位置值,开始位置为字符串最后一个字符,结束位置为第一个字符的前一个位置
#字符串切片
str_name = "wang dachui"
#切片操作
print( str_name[5:11:1] ) #创建新切片字符串
print( str_name[-6:11:1]) #等价 str_name[5:11:1]
print( str_name[5:11:4] ) #创建新切片字符串
print( str_name ) #不会修改原字符串
#有省略的切片
print( str_name[5:] ) # == str_name[5::] 通常,如果步长省略时 是把 冒号和值一起省略
print( str_name[5::4])
print( str_name[-6::4])
print( str_name[:4]) #从开始位置,一直切片到 4-1下标
#逆序切片
#步长为 负数
print( str_name[-1:-7:-1] )
print( str_name[10:4:-1] )
#对于步长为负数,默认位置值,开始位置为字符串最后一个字符,结束位置为第一个字符的前一个位置
print( str_name[::-1])
输出结果
dachui
dachui
du
wang dachui
dachui
du
du
wang
iuhcad
iuhcad
iuhcad gnaw
四、字符串的拼接
使用运算符实现字符串的拼接
+ : str1 + str2 把str1和str2 合并为一个新的字符串
* : str1 * 数字 把字符串str1 重复多次合并
str_test1 = "今天天气真热"
str_test2 = "热死了"
str_new = str_test1 + str_test2 #合并创建新的字符串,而不是在原字符串中进行修改
print(str_test1)
print(str_test2)
print(str_new)
str_test2 = str_test2 * 3 #由于重新赋值
print(str_test2)
输出结果
今天天气真热
热死了
今天天气真热热死了
热死了热死了热死了
使用python中的特定的字符串拼接函数 join
str.join
"连接字符串".join(要拼接的多个字符串组合)
str_new = " ".join( ( 今天天气真热, 重庆重庆重庆 ) )
print(str_new)
今天天气真热 重庆重庆重庆
五、其他常见字符串操作
1、获取字符串长度 len(str) 得到str的长度
str1="dccvb"
print(len(str1))
2、获取字符串中某个字符出现的位置,如果没找到,index出错
str.index(要查找的字符串【,从字符串哪里开始,到哪里结束】)
str_inform="坤坤你太美"
numb= str_inform.index("坤",0,5)
print(numb)
str.rindex(要查找的字符串【,从字符串哪里开始,到哪里结束】) #从右往左
str.find(要查找的字符串【,从字符串哪里开始,到哪里结束】)str.find获取字符串中某个字符出现的位置,如果没找到,find 返回负数 -1
str_inform="啊!坤坤你太美"
numb= str_inform.find("坤",0,5)
print(numb)
str.rfind(要查找的字符串【,从字符串哪里开始,到哪里结束】) #从右往左
3、获取字符串中对应字符出现的次数 str.count(要查找的字符串)
str_inform="啊!坤坤你太美"
numb= str_inform.count("坤")
print(numb)
4、在字符串中替换某个字符串 str.replace(原字符串,新字符串) 在 str 字符串中,把出现原字符串的位置 用新字符串替换
str_inform="啊!坤坤你太美"
numb= str_inform.replace("坤","鸡")
print(numb)
5、在字符串中分割字符串 str.split(在字符串中分割的标记字符【,分割的次数】)
str_temp="156451@qq.com 56616165@qq.com 64651115@qq.com"
str_b=str_temp.split(" ")
print(str_b)
#分割以后得到的str_b不是字符串,而是一个组合
#字符串的替换
6、判断字符串是否已某个字符串开始(判断是否包含前缀) str.startwith(前缀字符串)
str_temp="156451@qq.com 56616165@qq.com 64651115@qq.com"
str_a=str_temp.startswith("1")
print(str_a)
7、判断字符串是否已某个字符串结束(判断是否包含后缀)str.endwith(后缀字符串)
8、把字符串中小写字符转换为大写字符 str.upper()
str_inform="bcibaCIVAIC"
numb= str_inform.upper()
print(numb)
9、把字符串中大写字符转换为小写字符 str.lower()
str_inform="bcibaCIVAIC"
numb= str_inform.lower()
print(numb)
10、python字符串(编码为:utf-8) 转 字节串(字节存在 8bits) str.encode() 编码为 字节串 str.decode() 解码为 字符串
str_a="张三是帅哥"
print(len(str_a))
#字符串编码
str_b=str_a.encode("utf-8")
print(str_b)
print(type(str_a))
print(len(str_b))
#字符串解码,这里注意的是,解码的对象是我们前面编码过后的字符串
str_b=str_b.decode()
print(str_b)
print(type(str_a))
print(len(str_b))
六、总结
到此,python中关于字符串操作基本就完成了,希望大家能够举一反三