Python字符串无重复 python字符串重复子串_Python字符串无重复


《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!!