目录
[6.3.1 字符串常用操作方法](#6.3.1 字符串常用操作方法)
[6.3.2 获取字符串长度](#6.3.2 获取字符串长度)
[6.3.3 字符串的大小写操作](#6.3.3 字符串的大小写操作)
[6.3.4 删除字符串中的指定字符](#6.3.4 删除字符串中的指定字符)
[6.3.5 字符串的子串查找](#6.3.5 字符串的子串查找)
[6.3.6 字符串的子串统计](#6.3.6 字符串的子串统计)
[6.3.7 字符串的子串替换](#6.3.7 字符串的子串替换)
[6.3.8 字符串的拆分函数](#6.3.8 字符串的拆分函数)
[6.3.9 字符串的前缀与后缀](#6.3.9 字符串的前缀与后缀)
[6.3.10 你一定要成为高手](#6.3.10 你一定要成为高手)
6.3.1 字符串常用操作方法
字符串类型是一种抽象数据类型,抽象数据类型定义了数据类型的操作方法。在本节内容中,着重介绍字符串的常用操作方法。
6.3.2 获取字符串长度
(1) len(str)
函数说明:
返回字符串str所包含的字符个数
代码实例:
python
"""
@author: 大神薯条老师
@desc: 执行len方法来统计字符串中的字符数
"""
japanese = '''君のことを愛している'''
length = len(japanese)
# length的值为10,表示字符串包含10个字符
6.3.3 字符串的大小写操作
(1) str.lower()
函数说明:
将字符串str中的大写字符全部转换为小写,返回一个字符串。
代码实例:
python
"""
@author: 大神薯条老师
@desc: 字符串对象的lower方法
"""
blessing = '2020 Is Getting BettER'
blessing = blessing.lower()
# blessing的值为'2020 is getting better'
(2) str.upper()
函数说明:
将字符串str中的小写字符全部转换为大写,返回一个字符串。
代码实例:
python
"""
@author: 大神薯条老师
@desc: 字符串对象的upper方法
"""
blessing = '2020 is getting better'
blessing = blessing.upper()
# blessing的值为'2020 IS GETTING BETTER'
(3) str.islower()
函数说明:
Python中的函数名或变量名前带上一个is的前缀,表示是否的意思,返回布尔类型。islower用来判断字符串中的字符是否都为小写, 如果都为小写,就返回True,否则返回False。这里的小写字符主要指拉丁字母。
代码实例:
python
"""
@author: 大神薯条老师
@desc: 字符串对象的islower方法
"""
blessing = '2020 is getting better'
result = blessing.islower()
# result的值为True,字符串中的大小写字符均为小写
(4) str.isupper()
函数说明:
isupper函数用来判断字符串中的大小写字符是否都为大写,如果都为大写,就返回True,否则返回False。这里的大小写字符主要指拉丁字母。
代码实例:
python
"""
@author: 大神薯条老师
@desc: 字符串对象的isupper方法
"""
blessing = '2020 IS GETTING BETTER'
result = blessing.isupper()
# result的值为True, 所有字符均为大写
6.3.4 删除字符串中的指定字符
(1) str.strip(chars=None)
函数说明:
删除字符首尾的chars参数所代表的字符,不传递任何参数时,删除的是字符串首尾的连续的空白字符: 空格符,回车符,换行符等。
代码实例:
python
"""
@author: 大神薯条老师
@desc: 字符串对象的strip方法
"""
# 删除字符串首尾之连续的字符a
blessing = 'aa2020 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()
函数说明:
函数名中的前缀l是单词left的简写,该方法用来删除字符串最左边的字符。不传递任何参数时,删除的是字符串最左边的连续的空白字符: 空格符,回车符,换行符等。
代码实例:
python
"""
@author: 大神薯条老师
@desc: 字符串对象lstrip方法
"""
blessing = '\n\n 2020 Is Getting BettER \n'.lstrip()
# blessing的值为'2020 Is Getting BettER \n'
(3) str.rstrip()
函数说明:
函数名中的前缀r是单词right的简写,该方法用来删除字符串最右边的字符,不传递任何参数时,删除的是字符串最右边的连续的空白字符: 空格符,回车符,换行符等。
代码实例:
python
"""
@author: 大神薯条老师
@desc: 字符串对象的rstrip方法
"""
blessing = '\n\n 2020 Is Getting BettER\r\n '.rstrip()
# blessing的值为'\n\n 2020 Is Getting BettER'
6.3.5 字符串的子串查找
(1) str.find(sub)
函数说明:
从左到右查找子串第一次出现的位置,如果查找成功,返回子串在主串中的开始位置的索引,否则返回值为-1。这里的索引值同字符串索引访问中的索引值,Python中的索引值从0开始进行编号。
代码实例:
python
"""
@author: 大神薯条老师
@desc: 字符串对象的find方法
"""
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
代码实例:
python
"""
@author: 大神薯条老师
@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')
6.3.6 字符串的子串统计
(1) str.count(sub)
函数说明:
在字符串str中统计子串sub_str出现的次数,返回一个整型值。如果没有相应的子串,那么返回值为0。
代码实例:
python
"""
@author: 大神薯条老师
@desc: 字符串对象的count方法
"""
blessing = '2020 is getting better and better'
count = blessing.count('better')
# count的值为2
6.3.7 字符串的子串替换
(1) str.replace(old, new)
函数说明:
将字符串中子串替换为新的字符串,返回一个新的字符串。将参数old表示的子串替换为新的字符串new。
代码实例:
python
"""
@author: 大神薯条老师
@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方法。
代码实例:
python
"""
@author: 大神薯条老师
@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。
6.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函数。
代码实例:
python
"""
@author: 大神薯条老师
@desc: 字符串对象的split方法
"""
abc = "a$$b$$c"
characters = abc.split("$") # characters为['a', '', 'b', '', 'c']
characters = abc.split("$$") # characters 为['a', 'b', 'c']
6.3.9 字符串的前缀与后缀
(1) str.startswith(prefix) 判断字符串是否以prefix子串作为前缀,返回值为布尔类型
(2) str.endswith(suffix) 判断字符串是否以suffix子串作为后缀,返回值为布尔类型
代码实例:
python
"""
@author: 大神薯条老师
@desc: 字符串对象的startswith与endswith方法
"""
blessing = '2020 is getting better and better'
result = blessing.startswith("2020")
# belessing以2020为前缀,返回True
result = blessing.endswith("better")
# belessing以better为后缀,返回True
6.3.10 你一定要成为高手
跟薯条老师学后端开发,高级爬虫(JS逆向+安卓逆向),数据分析,大数据开发,量化交易,以及机器学习+深度学习算法。坚定自己的学习目标,保持学习的热情,那你成为高手只是时间问题。
薯条老师的学生在南方电网,林氏家居,京东,阿里等大厂。想系统学习Python和Java的同学,可以移步薯条老师的个人技术博客:薯条老师的个人技术博客http://www.chipscoco.com/ 对本节教程有任何不懂的同学,亦可在评论区中进行评论。薯条老师会详细解答你们提出的每一个问题。