字符串
字符串是python中常用的数据类型,使用('或")来创建。
创建字符串:
下标索引
字符串实际上是字符的数组,所以也支持索引。
str1 = 'abcdef'
切片
定义:切片是指对操作的对象截取一部分的操作。字符串、列表、元祖都支持切片操作。
语法格式:[起始值:终值:步长]
附注:切片选取的区间属于左闭右开,即从'起始值'到'终值'的前一位(不包含终值本身)
如:
1 str1='abcdef' 2 print('str1[0:3]=',str1[0:3]) #取出 0~3 的字符,不包含3 3 print('str1[2:4]=',str1[2:4]) #取出 2~4 的字符 4 print('str1[2:]=',str1[2:]) #取出 2~最后 的字符 5 print('str1[:-1]=',str1[:-1]) #取出 0~最后 的字符,不包括最后一个 6 print('str1[:]=',str1[:]) #取出所有字符 7 print('str1[5:1]=',str1[5:1]) #输出为空
输出结果为:
步长
1 str1='abcdef' 2 print('str1[0::3]=',str1[0::3]) #所有范围的字符,每次前进两个字符 3 print('str1[0:4:2]=',str1[0:4:2]) #下标0~4之间,每次前进两个字符 4 print('str1[len(str1)::-1]=',str1[len(str1)::-1]) #倒叙输出
输出结果为:
字符串常见操作
1、find
检测指定字符串是否包含在当前字符串中,如果是返回开始的索引,否则返回-1。
格式:mystr.find(str,start,end).
如:
1 str1='How are you,How are you' 2 index1=str1.find('How') #查询满足的第一个的下标 3 index2=str1.find('me') #查询是否有,没有返回-1 4 index3=str1.find('How',12,22) #从指定区间内查询 5 print('index1={},index2={},index3={}'.format(index1,index2,index3))
输出结果为:
2、index
定义:与find()函数一样,不同之处在于如果要查询的对象不在当前对象中,会报一个异常。
格式:mystr.index(str,start,end)
如:
1 str1='How are you,How are you' 2 index1=str1.index('How') #查询满足的第一个的下标 3 #使用try-except抛出异常 4 try: 5 index2=str1.index('me') #查询是否有,没有返回一个异常 6 except Exception as e: 7 print(e) 8 index3=str1.index('How',12,22) #从指定区间内查询 9 print('index1={},index3={}'.format(index1,index3))
输出结果为:
3、count
定义:返回str在start和end之间出现的次数。
格式:mystr.count(str)
如:
1 str1='How are you,How are you' 2 count1=str1.count('How') #查询'How'出现的次数 3 print(count1) # 2
4、replace
定义:将当前对象的某部分替换为另外一部分。
格式:mystr.replace(old,new,count=None)
如:
1 str1='How are you,How are you' 2 replace1=str1.replace('How','What',count=1) #将How替换为What,替换1次 3 print(replace1) # 输出为'What are you,How are you'
5、split
定义:将当前对象按照某种格式或某个字符分割
格式:mystr.split(str,maxsplit),以str为分割符切片mystr,如果maxsplit有指定数字,则分割maxsplit次。
如:
1 str1='How are you,How are you' 2 replace1=str1.split(' ',maxsplit=3) #将str1以空格分割,分割3次 3 print(replace1) # 输出为['How', 'are', 'you,How', 'are you']
6、capitalize
定义:把字符串首字母大写
格式:mystr.capitalize()
如:
1 str1='hello' 2 capitalize1=str1.capitalize() #将str1的首字母大写 3 print(capitalize1) # 输出为'Hello'
7、title
定义:字符串的每个单词的首字母都大写
格式:mystr.title()
如:
1 str1='How are you,How are you' 2 replace1=str1.title() #将每个单词的首字母大写 3 print(replace1) # 输出为How Are You,How Are You
8、startswith
定义:检查字符串是否是以指定字符串开头, 是则返回 True,否则返回 False
1 str1='abcdef' 2 print(str1.startswith('a')) 3 print(str1.startswith('b'))
9、endswith
定义:检查字符串是否以指定字符串结束,如果是返回True,否则返回 False。
1 str1='abcdef' 2 print(str1.endswith('f')) 3 print(str1.endswith('a'))
10、lower
定义:将字符串转换为小写。
1 str1='abcdeF' 2 print(str1.lower())
11、upper
定义:将字符串转换为小写
1 str1='abcdeF' 2 print(str1.upper())
12、ljust
定义:返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
格式:mystr.ljust(参数1,参数2);参数1:填充的个数,参数2:填充的字符
1 str1='abcdeF' 2 print(str1.ljust(9,'*'))
13、rjust
定义:返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
格式:mystr.rjust(参数1,参数2);参数1:填充的个数,参数2:填充的字符
1 str1='abcdeF' 2 print(str1.rjust(9,'*'))
14、center
定义:返回一个原字符串居中,并使用空格填充至长度 width 的新字符串
格式:mystr.center(参数1,参数2);参数1:填充的个数,参数2:填充的字符
1 str1='abcdeF' 2 print(str1.center(9,'#'))
15、lstrip
定义:删除字符串左边的空白字符。
格式:mystr.lstrip()
1 str1=' abcdeF' 2 print(str1.lstrip())
16、rstrip
定义:删除字符串末尾的空白字符
格式:mystr.rstrip()
1 str1=' abcdeF ' 2 print(str1.rstrip())
17、strip
定义:删除字符串两端的空白字符
格式:mystr.strip()
1 str1=' abcdeF ' 2 print(str1.strip())
18、rfind
定义:类似find()函数,不过是从右侧开始查找。返回最后一次出现的字符,找不到返回-1
格式:mystr.rfind(参数1,参数2,参数3);参数1:查询的字符,参数2:开始查找的位置,默认为0,参数3:结束查找的位置
1 str1='abcdeF a' 2 print(str1.rfind('a',7,0))
19、rindex
定义:类似index()函数,不过是从左侧开始查找。找不到返回一个异常
格式:mystr.rindex(参数1,参数2,参数3);参数1:查询的字符,参数2:开始查找的位置,默认为0,参数3:结束查找的位置
1 try: 2 str1='abcdeF a' 3 print(str1.rindex('a',7,0)) 4 except Exception as e: 5 print(e)
20、isspace
定义:如果字符串只包含空格,则返回True,否则返回False。
格式:mystr.isspace()
1 str1='abcdeF a' 2 print(str1.isspace())