9.3.1 字符串常用操作方法
字符串类型是一种抽象数据类型,抽象数据类型定义了数据类型的操作方法,在本节的内容中,着重介绍字符串的常用操作方法。
9.3.2 获取字符串长度
(1) len(str)
函数说明:
返回字符串str包含的字符个数
代码实例:
# __desc__ = 执行len方法来统计字符串中的字符数 japanese = '''君のことを愛している''' length = len(japanese) # length指向的值为10,表示字符串变量japanese包含10个字符
9.3.3 字符串的大小写操作
(1) str.lower()
函数说明:
将字符串str中的大小写字符全部转换为小写,返回一个字符串。
代码实例:
# __desc__ = 执行lower方法将字母转换为小写字母 blessing = '2020 Is Getting BettER' blessing = blessing.lower() # blessing指向的值为'2020 is getting better'(2) str.upper()
函数说明:
将字符串str中的大小写字符全部转换为大写,返回一个字符串。
代码实例:
# __desc__ = 执行upper方法将字母转换为大写字母 blessing = '2020 is getting better' blessing = blessing.upper() # blessing指向的值为'2020 IS GETTING BETTER'(3) str.islower()
函数说明:
Python中的函数名或变量名前带上一个is的前缀,表示是否的意思,返回布尔类型。islower用来判断字符串中的大小写字符是否都为小写, 如果都为小写,就返回True,否则返回False。这里的大小写字符主要指拉丁字母。
代码实例:
# __desc__ = 执行islower方法来判断是否为小写字母 blessing = '2020 is getting better' result = blessing.islower() # result指向的值为True,字符串中的大小写字符均为小写。 result = 'i love u'.islower() # result指向的值为True(4) str.isupper()
函数说明:
isupper函数用来判断字符串中的大小写字符是否都为大写,如果都为大写,就返回True,否则返回False。这里的大小写字符主要指拉丁字母。
代码实例:
# __desc__ = 执行isupper方法来判断是否为大写字母 blessing = '2020 IS GETTING BETTER' result = blessing.isupper() # result指向的值为True,所有大小写字符均为大写 result = 'I LOVE U'.isupper() # result指向的值为True
9.3.4 删除字符串中的字符
(1) str.strip(chars=None)
函数说明:
删除字符串首尾的连续的指定字符,当不传递参数时,删除的是空白字符(空格符,回车符,换行符等)
代码实例:
# __desc__ = 执行strip方法来删除首尾的连续的指定字符 # 删除字符串首尾连续的字符A blessing = 'AAA2020 Is Getting BettERAA'.strip("A") # blessing为'2020 Is Getting BettER' # 不传递参数时,删除的是空白字符 blessing = '\n 2020 Is Getting Better '.strip() # blessing为'2020 Is Getting Better'(2) str.lstrip(chars=None)
函数说明:
函数名中的前缀l是单词left的简写,该方法用来删除字符串最左边的指定字符,当不传递参数时,删除的是空白字符(空格符,回车符,换行符等)
代码实例:
# __desc__ = 执行lstrip方法来删除字符串首部的空白字符 blessing = '\n\n 2020 Is Getting BettER '.lstrip() # blessing指向的值为'2020 Is Getting BettER '(3) str.rstrip(chars=None)
函数说明:
函数名中的前缀r是单词right的简写,该方法用来删除字符串最右边的指定字符,当不传递参数时,删除的是空白字符(空格符,回车符,换行符等)
代码实例:
# __desc__ = 执行rstrip方法来删除尾部的空白字符 blessing = '\n\n 2020 Is Getting BettER\r\n '.rstrip() # blessing指向的值为'\n\n 2020 Is Getting BettER'
9.3.5 字符串的子串查找
(1) str.find(sub)
函数说明:
从左到右查找子串第一次出现的位置,如果查找成功,返回子串在主串中的开始位置的索引,否则返回值为-1。这里的索引值同字符串索引访问中的索引值,Python中的索引值从0开始进行编号。
代码实例:
# __desc__ = 执行rfind方法来查找子串是否存在 blessing = '2020 is getting better and better' index = blessing.find('better') # index指向的值为16 # 查找字符串变量blessing指向的字符串中是否包含bad luck字符串 if blessing.find('bad luck') != -1: # 如果返回的索引值不等于-1,说明包含better print('there is no bad luck in 2020') else: print('there is bad luck in 2020')(2) str.rfind(sub)
函数说明:
从右到左查找子串第一次出现的位置,如果查找成功,返回子串在主串中的开始位置的索引,否则返回值为-1
代码实例:
# __desc__ = 执行rfind方法来查找子串是否存在 blessing = '2020 is getting better and better' index = blessing.rfind('better') # index指向的值为27 # 查找字符串变量blessing指向的字符串中是否包含sad if blessing.rfind('sad') != -1: # 如果返回的索引值不等于-1,说明包含better print('there is no sad in 2020') else: print('there is a sad in 2020')
9.3.6 字符串的子串统计
(1) str.count(sub)
函数说明:
在字符串str中统计子串sub_str出现的数量,返回一个整型值。如果没有相应的子串,那么返回的值为0。
代码实例:
# __desc__ = 执行count方法来计算子串的数目 blessing = '2020 is getting better and better' count = blessing.count('better') # count的值为2现在通过字符串的find方法,切片操作,以及while循环结构来实现count方法的功能。
代码实例:
# __desc__ = 通过find方法,以及切片操作来实现count方法的功能 blessing = '2020 is getting better and better' count = 0 index = blessing.find('better') # 判断index是否等于-1,如果等于-1就退出循环 while index !=-1: # index不等于-1,说明查找到了子串 count += 1 # 查找到子串以后,再从子串开始位置+子串长度的新位置处开始切片 blessing = blessing[index+len('better'):] # 继续查找子串的位置 index = blessing.find('better') else: print(count)
9.3.7 字符串的子串替换
(1) str.replace(old, new)
函数说明:
将字符串中子串替换为新的字符串,返回一个新的字符串。将参数old表示的子串替换为新的字符串new。
代码实例:
# __desc__ = 执行replace方法来替换子串 blessing = '2020 is getting better and better' new_blessing = blessing.replace('2020','everything') # new_blessing指向的值为'everything is getting better and better'现在通过字符串的find方法,切片操作以及while循环结构来实现replace方法的功能。
代码实例:
# __desc__ = 通过find方法以及切片操作来实现replace的功能 blessing = '2020 is getting better and enverything in 2020 is getting better -2020' new_blessing = '' # 变量sub_str表示待替换的子串 sub_str = '2020' # 先通过len方法获取字符串的长度 length_of_sub = len(sub_str) # 变量dst_str表示替换后的子串 dst_str = 'everything' # right变量用来保存拆分后的右边部分的子串 right = blessing index = blessing.find(sub_str) # 判断index是否等于-1,如果等于-1就退出循环 while index !=-1: # 根据索引的起始位置,先将左边部分拆分出来 left = blessing[:index] # 再根据索引的起始位置+子串的长度,将右边部分拆分出来 right = blessing[index+length_of_sub:] new_blessing += left + dst_str # 继续查找子串的位置,继续下一轮的循环 blessing = right index = blessing.find(sub_str) else: new_blessing += right print(new_blessing)对于上面的代码实例,同学们可以结合下图进行理解:
中间部分表示待替换的子串,子串起始位置的左边部分则为left,子串尾部的右边部分则为right。
9.3.8 字符串的拆分函数
(1) str.split(sep=None, maxsplit=-1)
函数说明:
使用 sep作为分隔字符串,返回由sep字符串分隔后的字符串列表。 如果给出了 maxsplit,则最多进行 maxsplit 次拆分。 如果 maxsplit 未指定或为 -1,则不限制拆分次数。sep 参数可能由多个字符组成 (例如 '1@@2@@3'.split('@@') 将返回 ['1', '2', '3'])。
字符串类型执行split函数后的输出类型为列表类型,同学们可以在学完列表类型后,再回过头来理解这个split函数。
代码实例:
# __desc__ = 通过split方法对字符串进行拆分 abc = "a$$b$$c" characters = abc.split("$") # characters为['a', '', 'b', '', 'c'] characters = abc.split("$$") # characters 为['a', 'b', 'c']
9.3.9 字符串的前缀与后缀
(1)str.startswith(prefix) 判断字符串是否以prefix子串作为前缀,返回值为布尔类型
(2)str.endswith(suffix) 判断字符串是否以suffix子串作为后缀,返回值为布尔类型
代码实例:
# __desc__ = 判断字符串的前缀与后缀 blessing = '2020 is getting better and better' result = blessing.startswith("2020") # belessing以2020为前缀,返回True result = blessing.endswith("better") # belessing以better为前缀,返回True
9.3.10 最具实力的小班培训
薯条老师在广州有开设线下培训班,小班授课模式,一班最多6个人。也可一对一授课,全程帮助你学好计算机,实现高薪就业。不在广州的同学可提供住宿,也可以报名线上小班,用腾讯会议上直播课。
(1) Python后端工程师高薪就业班,月薪11K-18K,免费领取课程大纲
(2) Python中高级爬虫逆向工程师就业班,月薪15K-25K,包拿Offer
(3) Python数据分析+商业分析+数据科学就业班,企业级项目实战,月薪10K-20K
(4) Python量化交易就业班,A股+期货+数字货币量化,月薪10K-40K
(5) Python机器学习+深度学习算法工程师,月薪20-50K
跟薯条老师学习的学生有拿到花生日记,林氏家居,南方电网,京东, 阿里等公司的offer, 学生的最低薪资有6K,最高薪资有18K, 平均就业薪资有11000。
扫码咨询薯条老师: