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

目录

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

相关推荐
许苑向上2 分钟前
Dubbo集成SpringBoot实现远程服务调用
spring boot·后端·dubbo
Sxiaocai15 分钟前
使用 PyTorch 实现并训练 VGGNet 用于 MNIST 分类
pytorch·深度学习·分类
肖永威35 分钟前
CentOS环境上离线安装python3及相关包
linux·运维·机器学习·centos
SelectDB技术团队1 小时前
兼顾高性能与低成本,浅析 Apache Doris 异步物化视图原理及典型场景
大数据·数据库·数据仓库·数据分析·doris
郑祎亦1 小时前
Spring Boot 项目 myblog 整理
spring boot·后端·java-ee·maven·mybatis
nuclear20111 小时前
使用Python 在Excel中创建和取消数据分组 - 详解
python·excel数据分组·创建excel分组·excel分类汇总·excel嵌套分组·excel大纲级别·取消excel分组
躺平的花卷1 小时前
Python爬虫案例八:抓取597招聘网信息并用xlutils进行excel数据的保存
爬虫·excel
本当迷ya1 小时前
💖2025年不会Stream流被同事排挤了┭┮﹏┭┮(强烈建议实操)
后端·程序员
Lucky小小吴1 小时前
有关django、python版本、sqlite3版本冲突问题
python·django·sqlite
Landy_Jay1 小时前
深度学习:GPT-1的MindSpore实践
人工智能·gpt·深度学习