自学内容网 自学内容网

Python从入门到高手6.3节-字符串操作方法

目录

6.3.1 字符串常用操作方法

6.3.2 获取字符串长度

6.3.3 字符串的大小写操作

6.3.4 删除字符串中的指定字符

6.3.5 字符串的子串查找

6.3.6 字符串的子串统计

6.3.7 字符串的子串替换

6.3.8 字符串的拆分函数

6.3.9 字符串的前缀与后缀

6.3.10 你一定要成为高手


6.3.1 字符串常用操作方法

字符串类型是一种抽象数据类型,抽象数据类型定义了数据类型的操作方法。在本节内容中,着重介绍字符串的常用操作方法。

6.3.2 获取字符串长度

(1) len(str)

函数说明:

返回字符串str所包含的字符个数

代码实例:

"""
@author: 大神薯条老师
@desc: 执行len方法来统计字符串中的字符数
"""
 
japanese = '''君のことを愛している'''
length = len(japanese)

# length的值为10,表示字符串包含10个字符

6.3.3 字符串的大小写操作

(1) str.lower()

函数说明:

将字符串str中的大写字符全部转换为小写,返回一个字符串。

代码实例:

"""
@author: 大神薯条老师
@desc: 字符串对象的lower方法
"""
 
blessing = '2020 Is Getting BettER'
blessing = blessing.lower()
# blessing的值为'2020 is getting better'

(2) str.upper()

函数说明:

将字符串str中的小写字符全部转换为大写,返回一个字符串。

代码实例:

​​​​​​​"""
@author: 大神薯条老师
@desc: 字符串对象的upper方法
"""
 
 
blessing = '2020 is getting better'
blessing = blessing.upper()
# blessing的值为'2020 IS GETTING BETTER'

(3) str.islower()

函数说明:

Python中的函数名或变量名前带上一个is的前缀,表示是否的意思,返回布尔类型。islower用来判断字符串中的字符是否都为小写, 如果都为小写,就返回True,否则返回False。这里的小写字符主要指拉丁字母。

代码实例:

"""
@author: 大神薯条老师
@desc: 字符串对象的islower方法
"""
 
blessing = '2020 is getting better'
result = blessing.islower()

# result的值为True,字符串中的大小写字符均为小写

(4) str.isupper()

函数说明:

isupper函数用来判断字符串中的大小写字符是否都为大写,如果都为大写,就返回True,否则返回False。这里的大小写字符主要指拉丁字母。

代码实例:

"""
@author: 大神薯条老师
@desc: 字符串对象的isupper方法
"""
 
blessing = '2020 IS GETTING BETTER'
result = blessing.isupper()
# result的值为True, 所有字符均为大写
 

6.3.4 删除字符串中的指定字符

(1) str.strip(chars=None)

函数说明:

删除字符首尾的chars参数所代表的字符,不传递任何参数时,删除的是字符串首尾的连续的空白字符: 空格符,回车符,换行符等。

代码实例:

"""
@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的简写,该方法用来删除字符串最左边的字符。不传递任何参数时,删除的是字符串最左边的连续的空白字符: 空格符,回车符,换行符等。

代码实例:

"""
@author: 大神薯条老师
@desc: 字符串对象lstrip方法
"""
 
blessing = '\n\n  2020 Is Getting BettER  \n'.lstrip()
# blessing的值为'2020 Is Getting BettER  \n'  

(3) str.rstrip()

函数说明:

函数名中的前缀r是单词right的简写,该方法用来删除字符串最右边的字符,不传递任何参数时,删除的是字符串最右边的连续的空白字符: 空格符,回车符,换行符等。

代码实例:

"""
@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开始进行编号。

代码实例:

"""
@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

代码实例:

"""
@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。

代码实例:

"""
@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。

代码实例:

"""
@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方法。

代码实例:

"""
@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)

对于上面的代码实例,同学们可以结合下图进行理解:

image.png

中间部分表示待替换的子串,子串起始位置的左边部分则为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函数。

代码实例:

"""
@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子串作为后缀,返回值为布尔类型

代码实例:

"""
@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/ 对本节教程有任何不懂的同学,亦可在评论区中进行评论。薯条老师会详细解答你们提出的每一个问题。


原文地址:https://blog.csdn.net/thereisadownloader/article/details/142877104

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!