Python入门教程+项目实战-9.3节: 字符串的操作方法

news2025/2/27 23:01:23

目录

9.3.1 字符串常用操作方法

9.3.2 获取字符串长度

9.3.3 字符串的大小写操作

9.3.4 删除字符串中的空白字符

9.3.5 字符串的子串查找

9.3.6 字符串的子串统计

9.3.7 字符串的子串替换

9.3.8 字符串的拆分函数

9.3.9 字符串的前缀与后缀
9.3.10 知识要点

9.3.11 系统学习python


9.3.1 字符串常用操作方法

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

9.3.2 获取字符串长度

(1) len(str)

函数说明:

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

代码实例:

Python

# __desc__ = 执行len方法来统计字符串中的字符数
 
japanese = '''君のことを愛している'''
length = len(japanese)
# length指向的值为10,表示字符串变量japanese包含10个字符

9.3.3 字符串的大小写操作

(1) str.lower()

函数说明:

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

代码实例:

Python

# __desc__ = 执行lower方法将字母转换为小写字母
 
blessing = '2020 Is Getting BettER'
blessing = blessing.lower()
# blessing指向的值为'2020 is getting better'

(2) str.upper()

函数说明:

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

代码实例:

Python

# __desc__ = 执行upper方法将字母转换为大写字母
 
blessing = '2020 is getting better'
blessing = blessing.upper()
# blessing指向的值为'2020 IS GETTING BETTER'

(3) str.islower()

函数说明:

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

代码实例:

Python

# __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。这里的大小写字符主要指拉丁字母。

代码实例:

Python

# __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()

函数说明:

删除字符串首尾的空白字符,返回一个首尾不包含空白字符的新字符串。

代码实例:

Python

# __desc__ = 执行strip方法来删除首尾的空白字符
 
blessing = '\n2020 Is Getting BettER  '.strip()
# blessing指向的值为'2020 Is Getting BettER'

(2) str.lstrip()

函数说明:

函数名中的前缀l是单词left的简写,该方法用来删除字符串最左边的空白字符,返回一个首部不包含空白字符的新字符串。

代码实例:

Python

# __desc__ = 执行lstrip方法来删除首部的空白字符
 
blessing = '\n\n  2020 Is Getting BettER  '.lstrip()
# blessing指向的值为'2020 Is Getting BettER  '

(3) str.rstrip()

函数说明:

函数名中的前缀r是单词right的简写,该方法用来删除字符串最右边的空白字符,返回一个尾部不包含空白字符的新字符串。

代码实例:

Python

# __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开始进行编号。

代码实例:

Python

# __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

代码实例:

Python

# __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。

代码实例:

Python

# __desc__ = 执行count方法来计算子串的数目
 
blessing = '2020 is getting better and better'
count = blessing.count('better')
# count的值为2

现在通过字符串的find方法,切片操作,以及while循环结构来实现count方法的功能。

代码实例:

Python

# __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。

代码实例:

Python

# __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

# __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函数。

代码实例:

Python

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

代码实例:

Python

# __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 知识要点

(1)字符串类型是一种抽象数据类型,抽象数据类型定义了数据类型的操作方法

(2)len方法是一个全局方法,用来返回复合数据类型的元素数目。

(3)Python中的函数名或变量名前带上一个is的前缀,表示是否的意思

(4)回车符,换行符,制表符,空格符等都是空白字符

9.3.11 最具实力的小班培训

 薯条老师简介:资深技术专家,技术作家,著有《Python零基础入门指南》,《Java零基础入门指南》等技术教程。薯条老师的博客:http://www.chipscoco.com, 系统学习后端,爬虫,数据分析,机器学习、量化投资。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/412712.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一文教你认识分布式微服务开源框架

说到办公效率提质增效的问题,就需要了解分布式微服务开源框架了。因为这是助力企业做好数据管理、实现信息互通的得力助手和工具。在数字化发展进程越来越快的今天,实现办公自动化发展是不少用户的心愿和发展方向,采用分布式微服务开源框架可…

APK打包流程

(图是从别地儿抠过来的,所以不清晰 。) AAPT: 首先,安卓APP的资源这一块,会通过aapt进行一个编译,这个工具编译的时候,会首先会把我们的这个xml文件生成这一个R.java,然后再就是像m…

google账号注册流程升级了!2023年谷歌gmail邮箱帐号注册申请教程(完整版)

google账号注册升级了! 2023年4月份google账号注册流程升级了,升级之前的版本是完成验证手机号码后才填写用户资料,升级之后的版本是需要先填写用户资料才能注册谷歌gmail邮箱帐号; 2023年谷歌gmail邮箱帐号注册申请教程 1、打开…

ChatGPT扩展系列之解决ChatGPT 被大面积封号的终极方案

ChatGPT扩展系列之解决ChatGPT 被大面积封号的终极方案 本节介绍了一个解决ChatGPT在中国大陆无法使用和担心被封号的问题的方法。近期有很多亚洲用户被封号,原因是有人滥用API接口或者批量注册账号,不符合官方规定。对于这个问题,提出了一个解决方法,可以在中国大陆无需翻…

【NLP】pyltp工具介绍、安装和使用代码+示例

【NLP】pyltp工具介绍、安装和使用pyltp 文章目录【NLP】pyltp工具介绍、安装和使用pyltp1. 介绍2. 使用2.1 分句2.2 分词2.3 词性标注2.4 命名实体识别2.5 依存句法分析2.6 词义角色标注2.7 完整示例3. 参考1. 介绍 什么是pyltp pyltp 是LTP的 Python 封装,提供了…

uniapp - 全平台兼容的 “多图上传“ 功能,搭配 uview 组件库中的 upload 上传组件(附带详细的示例源码及注释,可直接复制使用或简单修改)

效果图 使用 uniapp 开发,多平台全端兼容的多图上传功能,支持限制个数及移除等。 组件库使用的是 uview 框架,上传组件基于 Upload组件,功能完美无bug。 准备阶段 Upload组件支持手动上传与

CMMI 3.0究竟有哪些变化?

新鲜出炉,CMMI 3.0究竟有哪些变化? 2023年4月6日,ISACA(国际信息系统审计协会)下属的CMMI研究院发布了CMMI 3.0版本。有哪些具体的变化呢?本文做了系统梳理,分为更名、新增、删除、实践域内的变…

代码随想录-67-450. 删除二叉搜索树中的节点

目录前言题目1.二叉搜索树特性递归找到要删除的节点2. 本题思路分析:3. 算法实现4. 算法坑点前言 我在刷卡哥的“代码随想录”,自己的总结笔记均会放在“算法刷题-代码随想录”该专栏下。 代码随想录此题链接 题目 1.二叉搜索树特性递归找到要删除的节…

【Python】Python中使用Matplotlib绘制折线图、散点图、饼形图、柱形图和箱线图

【Python】使用Matplotlib绘制折线图、散点图、饼形图、柱形图和箱线图 python数据可视化课程,实验二 Matplotlib 中文API:API 概览 | Matplotlib 一、实验任务的数据背景 提供的源数据(数据文件employee.csv)共拥有4个特征&…

Vue3自定义指令之前端水印功能实现

一、前置知识 — Vue 中的自定义指令 先来说说 vue2和vue3中自定义全局指令的区别 相同点:指令的应用场景,原理是一致的; 不同点:生命周期钩子函数名,指令定义的格式不一样。 vue2中自定义全局指令: 定义…

实时翻译器-实时自动翻译器

自动翻译器——让语言不再是障碍。 在当今全球化的背景下,语言已不再是跨文化交流的障碍。而自动翻译技术作为突破语言壁垒的有效手段,越来越受到关注和需求。我们的自动翻译器就是一个高效、准确的翻译工具,它能够根据用户输入的内容自动识…

mysql知识点看这一篇就够了!

存储引擎 InnoDB InnoDB 是 MySQL 默认的事务型存储引擎,只要在需要它不支持的特性时,才考虑使用其他存储引擎。 InnoDB 采用 MVCC 来支持高并发,并且实现了四个标准隔离级别(未提交读、提交读、可重复读、可串行化)。其默认级别时可重复读…

Springboot项目怎么设计业务操作日志功能?

目录 前言 需求描述与分析 系统日志 操作日志 设计思路 Spring AOP Filter和HandlerInterceptor 过滤器 拦截器 SpringAOP、过滤器、拦截器对比 实现方案 环境配置 依赖配置 表结构设计 代码实现 测试 调试方法 验证结果 总结 前言 很久以前都想写这篇文章…

[ 应急响应基础篇 ] Windows系统隐藏账户详解(Windows留后门账号)

🍬 博主介绍 👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…

Spring Web MVC DispatcherServlet详解—官方原版

一、概述 Spring Web MVC是基于Servlet API构建的原始Web框架,从一开始就包含在Spring框架中。正式名称“SpringWebMVC”来自其源模块(Spring-webmvc)的名称,但它更常见的名称是“SpringMVC”。 与Spring Web MVC并行&#xff0c…

【AIGC】GitHub Copilot 免费注册及在 PyCharm 中的安装使用

欢迎关注【youcans的 AIGC 学习笔记】原创作品 《GitHub Copilot 免费注册及在 VS Code 中的安装使用》 《GitHub Copilot 免费注册及在 PyCharm 中的安装使用》 GitHub Copilot 免费注册及在 PyCharm 中的安装使用1. GitHub Copilot 功能介绍2. 用户注册与申请2.1 个人订阅 Gi…

经典算法50例-无敌五十剑-算法五十重天

这里写目录标题1.汉诺塔2.费式数列3.巴斯卡三角形4.三色棋5.老鼠走迷官(一)6.老鼠走迷官(二)7.骑士走棋盘8.八皇后9.八枚银币10.生命游戏11.字串核对12.双色、三色河内塔13.背包问题14.蒙地卡罗法求 PI15.Eratosthenes筛选求质数1…

LeetCode——遍历序列构造二叉树

105从前序与中序遍历序列构造二叉树 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 示例 1: 输入: preorder [3,9,20,15,7], inorder [9,3,15,2…

3.12、生成者消费者模型

3.12、生成者消费者模型1.生产者消费者模型介绍2.一个没有实现线程同步的生产者消费者模型1.生产者消费者模型介绍 生产者消费者模型是一种多线程的设计模式,用于解决生产者和消费者之间的同步和协作问题。 在生产者消费者模型中,生产者和消费者通过共享…

代码随想录算法训练营第五十五天 | 392.判断子序列、115.不同的子序列

打卡第55天。 今日任务 392.判断子序列115.不同的子序列 392.判断子序列 给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。&#xf…