当前位置: 首页 > news >正文

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方法
"""# 删除字符串首尾之连续的字符ablessing = '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,说明包含betterprint('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,说明包含betterprint('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 = blessingindex = 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 = rightindex = blessing.find(sub_str)else:new_blessing += rightprint(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为前缀,返回Trueresult = blessing.endswith("better") 
# belessing以better为后缀,返回True

6.3.10 你一定要成为高手

跟薯条老师学后端开发,高级爬虫(JS逆向+安卓逆向),数据分析,大数据开发,量化交易,以及机器学习+深度学习算法。坚定自己的学习目标,保持学习的热情,那你成为高手只是时间问题。

薯条老师的学生在南方电网,林氏家居,京东,阿里等大厂。想系统学习Python和Java的同学,可以移步薯条老师的个人技术博客:薯条老师的个人技术博客http://www.chipscoco.com/ 对本节教程有任何不懂的同学,亦可在评论区中进行评论。薯条老师会详细解答你们提出的每一个问题。


http://www.mrgr.cn/news/48884.html

相关文章:

  • 聚类分析 | NRBO-GMM聚类优化算法
  • JDK 1.4主要特性
  • 【C#生态园】完整解读C#网络通信库:从基础到实战应用
  • 《DATE: Domain Adaptive Product Seeker for E-commerce》中文校对版
  • 嵌入式数据结构中顺序栈用法
  • 设计模式(学习笔记)
  • 二进制转十六进制
  • echarts 入门
  • 为什么很多人宁愿加钱买港版,也不愿买国行 iPhone 16
  • python爬虫 - 进阶正则表达式
  • 郑光荣参加老年春节联欢晚会团长会议现场采访
  • 初知C++:AVL树
  • 【在Linux世界中追寻伟大的One Piece】DNS与ICMP
  • 简单粗暴理解GNN、GCN、GAT
  • 【单机游戏】【烛火地牢2:猫咪的诅咒】烛火地牢2:猫咪的诅咒介绍
  • Vue2中如何使用从父组件中使用子组件中的数据
  • leetcode哈希表(一)-有效的字母异位词
  • C语言题目练习2
  • 黑马程序员 javaWeb基础学习,精细点复习【持续更新】
  • 复杂网络分析基本概念