
上一篇文章说了Python字符串下标和切片的概念,这篇文章来说说Python中对字符串的常用 *** 作。
对字符串的 *** 作主要分为三大类:查找、修改和判断。
1、字符串的查找 丹珍小说网 https://www.cuei.info所谓字符串查找方法,即是查找一个子串在字符串中的位置或出现的次数。
@1、find()方法find()方法是,检测某个子串是否包含在这个字符串中,如果存在返回这个子串开始位置的下标,否则则返回-1。
1)语法:
字符串序列.find(子串, 开始查找的位置下标, 结束查找的位置下标)注意:开始和结束位置下标可以省略,表示在整个字符串序列中查找。
2)快速体验:
mystr = "life is short,you need Python。"print(mystr.find('short')) # 8# 在字符串标记的范围内查找print(mystr.find('o', 13, 25)) # 15print(mystr.find('hello')) # -1@2、index()方法index()方法检测某个子串是否包含在这个字符串中,如果存在返回这个子串开始的位置下标,否则则报异常。
index()方法获取指定元素在列表中的第一次出现时索引,如果一个字符串内出现多处子串存在,返回第一个子串开始的位置下标。
1)语法:
字符串序列.index(子串, 开始查找的位置下标, 结束查找的位置下标)注意:开始和结束位置下标可以省略,表示在整个字符串序列中查找。
2)快速体验:
mystr = "life is short,you need Python。"print(mystr.find('short')) # 8# 在字符串标记的范围内查找# 可以只写开始位置print(mystr.find('o', 13, 25)) # 15# 报错ValueError: substring not foundprint(mystr.find('hello'))@3、rfind()和rindex()方法rfind()方法: 和find()方法功能相同,但查找方向为右侧开始。rindex()方法:和index()方法功能相同,但查找方向为右侧开始。@4、注意:但是下标还是从左到右,从0开始算起,只是查找开始的方向不同。
count()方法count()方法:返回某个子串在字符串中出现的次数。
1)语法:
字符串序列.count(子串, 开始位置下标, 结束位置下标)注意:开始和结束位置下标可以省略,表示在整个字符串序列中查找。
2)快速体验:
mystr = "life is short,you need Python。"print(mystr.count('o')) # 3# 在字符串标记的范围内查找# 可以只写开始位置print(mystr.count('o', 13, 25)) # 1print(mystr.count('hello')) # 02、字符串的修改所谓修改字符串,指的就是通过函数的形式修改字符串中的数据。(字符串修改的方法很多,我们只讲解一下最常用的。)
@1、replace()方法replace():替换
1)语法:
字符串序列.replace(旧子串, 新子串, 替换次数)注意:替换次数如果查出子串出现次数,则替换次数为该子串出现次数。
2)快速体验:
mystr = "hello and String and python and world"# 1.把字符串中的and全部换成he,查出几次,替换几次。# 结果:hello he String he python he worldnew_str = mystr.replace('and', 'he')print(new_str)# 2。替换次数如果超出子串出现的次数,表示替换所有子串# 结果:hello he String he python he worldnew_str = mystr.replace('and', 'he', 10)print(new_str)# 3、查出的子串中,只替换前两个# 结果:hello he String he Python and worldnew_str = mystr.replace('and', 'he', 2)print(new_str)3)注意(重要)
调用了replace()方法后,发现原有字符串的数据并没有做到修改,修改后的数据是replace()方法的返回值,说明字符串是不可变数据类型。
同时也说明:说明replace()方法有返回值,返回值是修改后的字符串。
应该所有关于字符串修改的函数,都有返回值,且返回修改后的字符串。
@2、总结:数据按照是否能直接修改分为可变类型数据和不可变类型数据两种。字符串类型的数据修改的时候不能改变原有字符串,属于不能直接修改数据的类型即是不可变类型。
split()方法split()方法:按照指定字符分割字符串。返回一个列表,并丢失字符串中包含的分割字符。
1)语法:
字符串序列.split(分割字符, num)注意:
num表示的是分割字符出现的次数,即将来返回数据个数为num+1个。
2)快速体验:
mystr = "hello and String and python and world"# 1.以and为分割符,分割字符串,出现的分割全部分割。# 结果:['hello ', ' String ', ' python ', ' world']new_str = mystr.split('and')print(new_str)# 2.只把前两次出现的分割符,进行字符串的分割# 结果:['hello ', ' String ', ' python and world']new_str = mystr.split('and', 2)print(new_str)@3、注意:如果分割字符是原有字符串中的子串,分割后则丢失该子串。
join()方法join()方法:用一个字符或子串合并字符串,即将多个字符串合并为一个新的字符串。
1)语法:
字符或子串.join(多字符串组成的序列)2)快速体验:
# 合并列表里面的字符串为一个大的字符串# 结果:aa...bb...ccmyList = ['aa', 'bb', 'cc']print('...'.join(myList))# 结果:hello world hello pythonList1 = ['hello', 'world', 'hello', 'python']print(' '.join(List1))@4、cAPItalize()方法cAPItalize()方法:将字符串第一个字符转换成大写。
代码演示如下:
""" 下面结果可以看到两点 1.字符串的第一个字符变成大写了。 2.除了首字符外,其他字符如有大写,都变成小写。"""# 结果:life is short,you need python。mystr = "life is short,you need Python。"new_str = mystr.cAPItalize()print(new_str)@5、注意:
cAPItalize()方法转换后,只字符串第一个字符大写,其他的字符全都小写。
Title()方法Title()方法:将字符串每个单词首字母转换成大写。
代码演示如下:
# 将字符串中的每个单词的首字母都转换成大写。# 如果单词的首字母原本就是大写,保持不变。# 结果:life Is Short,You Need Python。mystr = "life is short,you need Python。"new_str = mystr.Title()print(new_str)@6、lower()方法lower()方法:将字符串中大写转小写。
代码演示如下:
# 把字符串变成全小写。# 结果:life is short,you need python。mystr = "life is short,You Need Python。"new_str = mystr.lower()print(new_str)@7、upper()方法upper()方法:将字符串中小写转大写。
代码演示如下:
# 把字符串变成全大写。# 结果:liFE IS SHORT,YOU NEED PYTHON。mystr = "life is short,You Need Python。"new_str = mystr.upper()print(new_str)@8、lstrip()方法lstrip()方法:删除字符串左侧空白字符。
代码演示如下:
# 结果:"life is short,you need Python。 "mystr = " life is short,you need Python。 "new_str = mystr.lstrip()print(new_str)@9、rstrip()方法rstrip()方法:删除字符串右侧空白字符。
代码演示如下:
# 结果:" life is short,you need Python。"mystr = " life is short,you need Python。 "new_str = mystr.rstrip()print(new_str)@10、strip()方法strip()方法:删除字符串两侧空白字符。
代码演示如下:
# 结果:"life is short,you need Python。"mystr = " life is short,you need Python。 "new_str = mystr.strip()print(new_str)@11、ljust()方法ljust()方法:返回一个原字符串左对齐的字符串,并使用指定字符(默认空格)填充至对应长度的新字符串。
1)语法:
字符串序列.ljust(长度, 填充字符)2)示例:
# 输出结果:Pyhton....mystr = "Pyhton"new_str = mystr.ljust(10 , ".")print(new_str)@12、rjust()方法rjust()方法:返回一个原字符串右对齐的字符串,并使用指定字符(默认空格)填充至对应长度的新字符串。
语法和ljust()方法相同。
代码演示如下:
# 字符串序列.rjust(长度, 填充字符)# 输出结果:....Pyhtonmystr = "Pyhton"new_str = mystr.rjust(10 , ".")print(new_str)@13、center()方法center()方法:返回一个原字符串居中对齐的字符串,并使用指定字符(默认空格)填充至对应长度的新字符串。
语法和ljust()方法相同。
代码演示如下:
# 字符串序列.center(长度, 填充字符)# 输出结果:..Pyhton..mystr = "Pyhton"new_str = mystr.center(10 , ".")print(new_str)""" 有的时候可能不是绝对居中, 补充字符数可能是奇数, 调整长度即可让补充字符数变成偶数, 来达到绝对居中效果。"""3、字符串的判断所谓判断即是判断真假,返回的结果是布尔型数据类型:True 或 False。
@1、startswith()方法startswith()方法:检查字符串是否是以指定子串开头,是则返回 True,否则返回 False。如果设置开始和结束位置下标,则在指定范围内检查。
1)语法:
字符串序列.startswith(子串, 开始位置下标, 结束位置下标)开始位置下标和结束位置下标可以不写,不写则是全字符串内检查。
2)快速体验:
mystr = "life is short,you need Python"# 结果:Truenew_str = mystr.startswith('li')print(new_str)# 结果Falsemystr = "life is short,you need Python"new_str = mystr.startswith('li', 3, 15)print(new_str)@2、endswith()方法endswith()方法:检查字符串是否是以指定子串结尾,是则返回 True,否则返回 False。如果设置开始和结束位置下标,则在指定范围内检查。
1)语法:
字符串序列.endswith(子串, 开始位置下标, 结束位置下标)开始位置下标和结束位置下标可以不写,不写则是全字符串内检查。
2)快速体验:
mystr = "life is short,you need Python"# 结果:Falsenew_str = mystr.endswith('thons')print(new_str)# 结果:Falsenew_str = mystr.endswith('thon', 5, 20)print(new_str)@3、isAlpha()方法isAlpha()方法:如果字符串至少有一个字符,并且所有字符都是字母则返回 True, 否则返回 False。
代码演示如下:
mystr = "life is short,you need Python"mystr1 = 'hello'mystr2 = 'hello12345'# 结果:False 因为有空格 new_str = mystr.isAlpha()print(new_str)# 结果:Truenew_str = mystr1.isAlpha()print(new_str)# 结果:False 因为有数字new_str = mystr2.isAlpha()print(new_str)@4、isdigit()方法isdigit()方法:如果字符串只包含数字则返回 True,否则返回 False。
代码演示如下:
mystr = "12345 12345"mystr1 = 'aaa12345'mystr2 = '12345'# 结果: False 因为有空格 new_str = mystr.isdigit()print(new_str)# 结果:False 因为有字母new_str = mystr1.isdigit()print(new_str)# 结果:Truenew_str = mystr2.isdigit()print(new_str)@5、isalnum()方法isalnum()方法:如果字符串至少有一个字符,并且所有字符都是字母或数字或者字母和数字的组合,则返回 True,否则返回False。
代码演示如下:
mystr = "life is short,you need Python"mystr1 = 'aaa12345'mystr2 = '12345-'# 结果:False 因为有空格new_str = mystr.isalnum()print(new_str)# 结果:Truenew_str = mystr1.isalnum()print(new_str)# 结果:False 只能是数字或者字母,其他字符都不行new_str = mystr1.isalnum()print(new_str)@6、isspace()方法isspace()方法:如果字符串中只包含空白,则返回True,否则返回False。
代码演示如下:
mystr = "life is short,you need Python"mystr1 = ' '# 结果:Falsenew_str = mystr.isspace()print(new_str)# 结果:Truenew_str = mystr1.isspace()print(new_str)4、补充:Python中方法和函数的区别。这里简单的说一说方法和函数,在python3中,对方法和函数有明确的规定:
函数function:A serIEs of statements which returns some value to a caller. It can also be passed zero or more arguments which may be used in the execution of the body.从定义的角度上看,我们知道函数(
function)就相当于一个数学公式,它理论上不与其它东西关系,它只需要相关的参数就可以。方法method:A function which is defined insIDe a class body. If called as an attribute of an instance of that class, the method will get the instance object as its first argument (which is usually called self).那么方法的意思就很明确了,它是与某个对象相互关联的,也就是说它的实现与某个对象有关联关系。这就是方法。虽然它的定义方式和函数是一样的。也就是说,在Class定义的函数就是方法。(我的理解)总结:在python3中方法和函数基本上是一样。
只不过方法必须通过
对象.方法() 的形式调用,如xxx.print() 方法实际上就是和对象关系紧密的函数。而函数可以直接使用,如
print()。(就先这样理解,以后学习到函数的时候在详细说明,这和Java还是有区别的。)
总结以上是内存溢出为你收集整理的『无为则无心』Python序列 — 17、Python字符串 *** 作的常用API全部内容,希望文章能够帮你解决『无为则无心』Python序列 — 17、Python字符串 *** 作的常用API所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)