时间:2022-07-12 10:55:50 | 栏目:Python代码 | 点击:次
注意:对字符串的所有操作,原始数据(即原字符串)不变 !(字符串是不可变类型)
对原字符串操作会返回一个操作后的数据, 可以使用变量去接受数据
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
str[下标],从左向右0→+,从右向左-1→
str[起始:结束:步长],范围包首不包尾
>>> str="0123456789" #定义一个字符串,从0到9,共10个元素 >>> str[0] #取出0号下标的元素 '0' >>> str[10] #尝试取出10号下标的元素 Traceback (most recent call last): File "<pyshell#6>", line 1, in <module> str[10] IndexError: string index out of range #报错,下标越界,不存在str[10] >>> str[9] #下标从左向右数,第一个为0号下标,第N个元素下标为N-1 '9' >>> str[-1] #下标从右向左数,第一个为-N号下标,倒数最后一个为-1 '9' >>> str[-10] '0'
.find(str),str存在字符串中返回下标索引值,不存在返回-1
.rfind(str),str存在字符串中,查找顺序为从右向左,其它与find一样
.index(str),存在返回下标索引值,不存在报异常
.rindex(str),存在返回下标索引值,查找顺序为从右向左,其它与index一样
.count(str[,起始,结束]),查找指定字符串中该字符出现的总次数
>>> str='123aaabcdeeff' #定义一个字符串用于测试字符串方法的使用 >>> str.find(0) #尝试查询整数0是在于字符串中的下标 Traceback (most recent call last): File "<pyshell#7>", line 1, in <module> str.find(0) TypeError: must be str, not int #字符串操作,查询操作对象必须为字符串类型,所以元素应用‘'标识 >>> str.find('1') #查询字符1在指定字符串中首次出现的下标 0 #返回的下标为0 >>> str.find('a') #查询字符a在指定字符串中首次出现的下标 3 #返回的下标为3 >>> str.rfind('a') #反向查询(即从末尾向前查询),字符a首次出现在字符串中的下标 5 #返回的下标为5 >>> str.index('0') #使用index查询时,字符不存在时,会报错 Traceback (most recent call last): File "<pyshell#11>", line 1, in <module> str.index('0') ValueError: substring not found >>> str.find('0') #使用find查询时,不存在返回-1 -1 >>> str.rindex('a') #使用rindex反向查询 5 >>> str.count('a') #使用count查询指定字符出现的总共次数 3 >>> str.count('f') 2 >>> str.count('a',0,3) #使用count时,可以指定范围,第一个数字指定起始位置, 0 #第二个数字指定 结束范围,查询范围包含起始位,不包含结束位 >>> str.count('a',1,5) 2 >>> str.find('abcde') #操作对象为字符串,传入参数也是一个字符串,并不一定是一个字符 5 #可以是字母数字以及中文
.replace(str1,str2 [,n] ),将字符串中所有的str1替换为str2,n可指定最多替换的次数
>>> str='123aaabcdeeff' >>> str.replace('a','s') #不指定替换次数,将会全部替换 '123sssbcdeeff' >>> str.replace('a','s',1) #指定次数时,仅替换指定次数个,替换顺序为从前向后 '123saabcdeeff' >>> str.replace('a','s',2) '123ssabcdeeff'
.split(str[,n]),以str为分隔符(分割后丢失),将字符串分割为多个字符串,n可指定最多的分割次数
.partition(str),已指定字符做为一个部分,分割两边,生成三部分的字符串
.splitlines(),按照行进行分割,返回一个包含各行作为元素的列表
>>> str='123123123' #定义一个字符串,用于测试 >>> str.split('2') #使用split进行分割 ['1', '31', '31', '3'] #分割后指定的分割符消失,生成多个字符串的列表 >>> str.partition('2') #使用partition进行分割 ('1', '2', '3123123') #仅进行一次分割,分割后制定的分割符单独成为一部分 >>> str='abc\nabc\nabc\nabc' #定义一个包含行符的字符串 >>> print(str) #打印输出测试 abc abc abc abc >>> str.splitlines() #使用splitlines进行分割,生成一个列表,每一行数据为一个元素 ['abc', 'abc', 'abc', 'abc']
.capitalize(),将字符串第一个首字母大写(其它都小写)
.title(),将字符串中所有单词首字母大写(其它都小写)
.lower()转换所有大写字符为小写
.upper()转换所有小写字符为大写
>>> str="abcABC defDEF hijHIJ klMN" #定义一个包含大小写的字符串用于测试 >>> str.capitalize() #将字符串首字母进行大写 'Abcabc defdef hijhij klmn' >>> str.title() #将所有单词首字母进行大写 'Abcabc Defdef Hijhij Klmn' >>> str.lower() #将字符串中所有字母小写 'abcabc defdef hijhij klmn' >>> str.upper() #将字符串中所有字母大写 'ABCABC DEFDEF HIJHIJ KLMN' >>>
.ljust(width)返回一个原字符串左对齐,并默认使用空格补充至长度为width的字符串
.rjust(width)返回一个原字符串右对齐,并默认使用空格补充至...........
.center(width) 返回一个原字符居中,并使用空格补充至width长度的新字符串
#默认使用空格补充长度,显示不够明显,所以为了突出效果,指定使用了*补充 str1=' abcde ' print(str1.ljust(20,'*')) #左对齐,指定长度为20 str2=' abcde ' print(str2.rjust(20,'*')) #右对齐,指定长度为20 str3=' abcde ' print(str3.center(20,'*')) #居中对齐,指定长度为20 #执行结果 # abcde ********** # ********* abcde # **** abcde *****
.lstrip(),删除左侧的空白字符
.rstrip(),删除末尾的空白字符
.strip(),删除两端的空白字符
>>> str=' abc ' >>> str.lstrip() #删除左侧空格 'abc ' >>> str.rstrip() #删除右侧空格 ' abc' >>> str.strip() #删除两侧空格 'abc' >>>
.startswith(str),检查字符串是否以指定字符开头,是则返回Turn,否则返回False
.endswith(str),检查字符串是否以指定字符结尾,是则返回Turn,否则为False
.isalpha(),检查字符串是否都是字母,是返回Turn,否则返回False
.isdigit(),检查字符串是否只包含数字,是返回Turn,否则返回False
.isalnum(),检查字符串是否都是字母或数字,是返回Turn,否则返回False
.isspace(),检查字符串是否只包含空格,是返回Turn,否则返回False
>>> str0='0123abcd' >>> str1='12345' >>> str2='abcdef' >>> str3=' ' >>> str0.startswith('0') #检查是否包含指定字符串,是则返回True True >>> str0.startswith('6') #不包含则返回Flace False >>> str0.endswith('0') #检查是否以指定字符串结束,不是返回Flace False >>> str0.endswith('d') #是则返回True True >>> str1.isalnum() #检测指定字符串是否全是字母和数字组成 True >>> str2.isalpha() #检测指定字符串是否全为字母 True >>> str0.isdigit() #检测指定字符串是否全是数字 False >>> str3.isspace() #检测指定字符串是否全为空格 True >>>
方法 | 描述 |
---|---|
str.len() | 返回str字符串的长度 |
str.lower() | 返回字符串str的副本,全部字符小写 |
str.upper() | 返回字符串str的副本,全部字符大写 |
str.islower() | 当str全部字符都是小写时,返回True,否则返回False |
str.isupper() | 当str全部字符都是大写时,返回True,否则返回False |
str.isprintable() | 当str全部的字符都是可打印时,返回 True,否则返回False |
str.isalnum() | 当str只由字母或数字组成时,返回True,否则返回False |
str.isalpha() | 当str的所有字符都是字母组时,返回True,否则返回False |
str.isascii() | 当str的所有字符均在ascii码内,返回True, 否则返回False |
str.isdecimal() | 当str的所有字符均是Unicode数字或全角数字时,返回True,否则返回False |
str.isdigit() | 当str的所有字符都是Unicode数字或byte数字或全角数字或罗马数字时,返回True,否则返回False |
str.isnumeric() | 当str的所有字符都是Unicode数字或全角数字或罗马数字或汉字数字时,返回True, 否则返回False |
str.isidentifier() | 如果str是有效的Python标识符返回True,否则返回False |
str.isspace() | 当str所有字符都是空格时,返回True, 否则返回False |
str.format() | 返回字符串str的一种排版格式 |
str.count(sub [, start [, end]]) | 返回str[start: end]中sub子串出现的次数 |