《Python语言程序设计基础》:
在Python解析器内部,所有数据类型都采用面向对象方式实现,封装成一个类。
字符串也是一个类,它具有类似<a>.<b>()形式的字符串处理函数。
在面向对象中,这类函数被称为“方法”。
无特别说明,str是将要进行处理的目标字符串。全部方法操作后返回副本,不赋值。
1、大小写转换
str.lower() #返回字符串str的小写副本
str.upper() #返回字符串str的大写副本
str.capitalize() #把字符串第一个字母大写,其余小写
str.swapcase() #字符串大写和小写字母相互转换
>>> str = "Winter Is Coming!"
>>> str.lower() #返回字符串str的小写副本
'winter is coming!'
>>> str.upper() #返回字符串str的大写副本
'WINTER IS COMING!'
>>> str.capitalize() #把字符串第一个字母大写,其余小写
'Winter is coming!'
>>> str.swapcase() #字符串大写和小写字母相互转换
'wINTER iS cOMING!'
2、判断是否大小写
str.islower() #当str所有字符都是小写时,返回True,否则返回False
str.isupper() #当str所有字符都是大写时,返回True,否则返回False
>>> str = "Winter Is Coming!"
>>> str.islower() #当str所有字符都是小写时,返回True,否则返回False
False
>>> str.isupper() #当str所有字符都是大写时,返回True,否则返回False
False
3、判断数字、空格
str.isnumeric() #当str所有字符都是数字时,返回True,否则返回False
str.isspace() #当str所有字符都是空格时,返回True,否则返回False
>>> str1 = "15013095593"
>>> str1.isnumeric() #当str所有字符都是数字时,返回True,否则返回False
True
>>> str2 = " "
>>> str2.isspace() #当str所有字符都是空格时,返回True,否则返回False
True
4、去掉字符串空格
str.strip() #去除str头尾空格
str.lstrip() #去除str头部left的空格
str.rstrip() #去除str尾部right的空格
str.replace(' ','') #替换str中全部的空格
>>> str3 = " Winter Is Coming! "
>>> str3.strip() #去除str头尾空格
'Winter Is Coming!'
>>> str3.lstrip() #去除str头部left的空格
'Winter Is Coming! '
>>> str3.rstrip() #去除str尾部right的空格
' Winter Is Coming!'
>>> str3.replace(' ','') #替换str中全部的空格
'WinterIsComing!'
注意,以上多个函数方法括号内并无参数,str.replace()除外。
且str.replace()鹤立鸡群,与众不同!
5、字符串替换处理
str.replace(old,new[,count]) #所有old子串被替换成new子串,count指替换次数,[]为可选
>>>
6、字符串检索
str.find(sub[,start[,end]]) #在指定范围内,按顺序从左到右,检索sub子串第一次出现位置
str.rfind(sub[,start[,end]]) #在指定范围内,按顺序从右到左,检索sub子串第一次出现位置
sub子串为检索目标,start和end指定检索范围,可选,缺省时默认str[:]。检索不到目标字符串时返回-1。
>>> str = "Winter Is Coming!"
>>> str.find("n") #在指定范围内,按顺序从右到左,检索sub子串第一次出现位置
2
>>> str.rfind("n") #在指定范围内,按顺序从右到左,检索sub子串第一次出现位置
14
>>> str.find("a")
-1
>>> str.rfind("a")
-1
注意,无论是从左到右检索,还是从右到左检索,返回的序号都是正向序号。str.index和str.rindex用法与上述大致相同。
7、字符串切割
str.split()则不再赘述。
8、计算子串出现次数
str.count(sub[,start[,end]]) #返回str[start:end]中子串出现的次数
>>> str = "Winter Is Coming!"
>>> str.count('n') #返回str[start:end]中子串出现的次数
2
9、连接字符串
str.join(iterable) #返回一个新字符串,由一个序列对象元素组成,用str进行连接
>>> a='---'#间隔符号1
>>> b=' '#间隔符号2
>>> str = "Winter Is Coming!"
>>> ls = str.split()#生成列表ls
>>> print(a.join(ls))
Winter---Is---Coming!
>>> print(b.join(ls))
Winter Is Coming!
10、数字型字符串格式化
str.zfill(width)#返回width长度的字符子串,长度不够则用0填充,主要用于数字型字符串
>>> str1 = "15013095593"
>>> str2 = "-15013095593"
>>> str1.zfill(20)
'00000000015013095593'
>>> str2.zfill(20)
'-0000000015013095593'
11、匹配头尾子串
str.startswith(prefix[,start[,end]])#str[start:end]以 prefix 开始返回True,否则返回False
str.endswith(suffix[,start[,end]])#str[start:end]以 suffix 结尾返回True,否则返回False
>>> str = "Winter Is Coming!"
>>> str.startswith('W')
True
>>> str.endswith("!")
True
THE END!!