字符串的定义
和其它容器如:列表、元组一样,字符串也可以通过下标进行访问
从前向后,下标从0开始 ;从后向前,下标从-1开始
值得注意的是同元组一样,字符串是一个:无法修改的数据容器。所以有关字符串的任何修改操作都是错误的;
如果必须要做,只能得到一个新的字符串,旧的字符串是无法修改
字符串的常用操作
查找特定字符串的下标索引值 index
my_str="ab cde fg 123" num="0123456789" print(my_str.index("fg"))
7
字符串的替换 replace
- 语法:字符串.replace(字符串1,字符串2)
- 功能:将字符串内的全部:字符串1,替换为字符串2
- 注意:不是修改字符串本身,而是得到了一个新字符串
my_str="about above" new_str=my_str.replace("ab","AB") print(my_str) print(new_str)
about above
ABout ABove
字符串本身并没有发生变化,而是得到了一个新字符串
字符串的分割 split
- 语法:字符串.split(分隔符字符串)
- 功能:按照指定的分隔符字符串,将字符串划分为多个字符串,并存入列表对象中
- 注意:字符串本身不变,而是得到了一个列表对象
my_str="about above abandon abject" new_str=my_str.split(" ") print(my_str) print(new_str) print(type(new_str))
about above abandon abject
['about', 'above', '', '', '', 'abandon', 'abject']
<class 'list'>
可见,字符串按照给定的 <空格>进行了分割,变成多个子字符串,并存入一个列表对象中
值得注意的是,如果存在连续的分割符,会将所有的分割符去除,除第一个分割符外,其余n-1分割符生成n-1个空字符串(若分割符在第一个,则第一个分割符也生成空串)
my_str1="a" my_str2="abaac" new_str1=my_str1.split("a") new_str2=my_str2.split("a") print(new_str1) print(new_str2)
['', '']
['', 'b', '', 'c']
字符串的规整操作 strip
语法:字符串.strip()(去前后空格与转行符)
my_str=" about above abandon abject " new_str=my_str.strip() print(my_str) print(new_str)
about above abandon abject
about above abandon abject
语法:字符串.strip(字符串) (去前后指定字符串)
my_str="6a 1234567890 6a66baaab6a66ba6b" new_str=my_str.strip("6ab") print(my_str) print(new_str)
6a 1234567890 6a66baaab6a66ba6b
1234567890
将前后含有字符串内容的字符去除,以不在字符串中的任意字符为分隔
统计字符串中某字符串的出现次数 count
my_str="about above abandon abject" new_str=my_str.count("ab") print(my_str) print(new_str) print(type(new_str))
about above abandon abject
4
<class 'int'>
每个字符只能算一次
my_str="a6aa6aa6aa" new_str=my_str.count("a6aa") print(my_str) print(new_str)
a6aa6aa6aa
2
统计字符串的长度 len
数字(1、2、3...)
字母(abcd、ABCD等)
符号(空格、!、@、#、$等)
中文(文字和符合)
都算1个字符长度
my_str="123#$%^wdkj哈哈是 ~!、E(?/" print(len(my_str))
22
字符串切片 [起始下标:结束下标:步长]
切片:从一个序列中,取出一个子序列
语法:序列[起始下标:结束下标:步长]
此操作不会影响序列本身,而是会得到一个新的序列(列表、元组、字符串)
起始下标与结束下标为左闭右开区间 [左,右) #注意不是[始,末)
my_str="0123456789" print(my_str[:])#从头开始,到最后结束,步长1 print(my_str[1:5:1])#下标1开始,下标5(不含)结束,步长1 print(my_str[:4:2])#从头开始,到下标4(不含)结束,步长2 print(my_str[::2])#从头开始,到最后结束,步长2 print(my_str[::-1])#从头(最后)开始,到尾结束,步长-1(倒序) print(my_str[6:1:-1])#从下标6开始,到下标1(不含)结束,步长-1(倒序) print(my_str[:1:-2])#从头(最后)开始,到下标1(不含)结束,步长-2(倒序)
0123456789
1234
02
02468
9876543210
65432
9753