Python教程(7)——一文弄懂Python字符串操作(上)|字符串查找|字符串分割|字符串拼接|字符串替换

Python字符串操作

  • 字符串简介
  • 字符串查找
    • 使用 in 关键字
    • 使用 find() 方法
    • 使用 index() 方法
    • 使用正则表达式
  • 字符串替换
    • 使用 replace() 方法
    • 使用正则表达式
    • 使用字符串模板
  • 字符串分割
  • 字符串拼接
    • 使用加号 (+) 运算符
    • 使用字符串的格式化方法
    • 使用 f-string(格式化字符串)
    • 使用字符串的 join() 方法

字符串简介

在计算机编程中,字符串是由字符组成的字节序列。在Python中,字符串是表示文本数据的数据类型,由一系列 Unicode 字符组成。字符串可以包含字母、数字、标点符号、空格以及其他特殊字符。实际工作当中,接触最多的可能就是字符串了。

字符串也是Python中最基本的类型,Python中的字符串类型可以使用引号括起来。可以使用单引号、双引号或三引号来定义字符串。

str1 = 'Hello'
str2 = "World"
str3 = """Python"""

可以使用索引运算符([])来访问字符串中的单个字符。字符串的第一个字符索引为0,最后一个字符索引为-1,可以使用负数进行倒序访问。例如:

str = "Hello, World!"
print(str[0])      # 输出 'H'
print(str[-1])     # 输出 '!'

字符串还可以通过加号(+)进行拼接,例如:

str1 = "Hello"
str2 = "World"
str3 = str1 + " " + str2
print(str3)   # 输出 'Hello World'

Python提供了丰富的字符串方法,用于处理字符串的操作,例如转换大小写、查找、替换等。还有格式化字符串的方法,用来替换占位符以生成特定格式的字符串。字符串类型说简单很简单,因为就单纯的字符串变化,说复杂也很复杂,结合其他相关类型,真的可以变化莫测。

字符串查找

在 Python 中,字符串查找是非常基础的功能,有几种常用的方法可以用来查找字符串中的子串或特定字符:

使用 in 关键字

使用 in 关键字。可以判断一个字符串是否包含另一个子串,这种方式简单方便,在编程当中经常会被用到。

str = "Hello, World!"
if "Hello" in str:print("包含 'Hello'")
else:print("不包含 'Hello'")

使用 find() 方法

使用 find() 方法。可以返回子串在字符串中第一次出现的索引值。如果找不到子串,返回 -1。

str = "Hello, World!"
index = str.find("World")
if index != -1:print("子串 'World' 的索引值为", index)
else:print("未找到子串 'World'")

使用 index() 方法

index()方法与find()方法类似,但是如果找不到子串,会抛出ValueError异常。

str = "Hello, World!"
try:index = str.index("World")print("子串 'World' 的索引值为", index)
except ValueError:print("未找到子串 'World'")

使用正则表达式

Python 提供了re模块,可以使用正则表达式来进行复杂的字符串匹配与查找操作,需要说明的是正则表达式的用法千变万化,需要根据实际情况来使用。

import restr = "Hello, World!"
pattern = r"World"
match = re.search(pattern, str)if match:print("找到子串 'World'")start_index = match.start()end_index = match.end()print("子串的起始索引为", start_index)print("子串的结束索引为", end_index)
else:print("未找到子串 'World'")

上面就是一些常用的字符串查找的方法,可以根据需求选择合适的方法。需要注意的是,这些方法都是区分大小写的。如果想要进行大小写不敏感的查找,可以通过将字符串转换为统一的大小写来实现。

字符串替换

在一些编程当中,字符串替换是非常常见的操作,在Python中,可以使用不同的方法来替换字符串中的特定子串或字符,下面是一些常用的方法。

使用 replace() 方法

replace() 方法可以替换字符串中的所有匹配子串为新的子串。

str = "Hello, World!"
new_str = str.replace("World", "Python")
print(new_str)  # 输出 "Hello, Python!"

replace() 方法还可以指定替换的次数,只替换前几个匹配项。

str = "Hello, World!"
new_str = str.replace("l", "L", 2)
print(new_str)  # 输出 "HeLLo, World!"

使用正则表达式

可以利用 re 模块的 sub() 函数来使用正则表达式替换匹配的子串。使用正则表达式可以更灵活地进行替换操作,例如根据匹配结果动态替换内容。

import restr = "Hello, World!"
new_str = re.sub(r"World", "Python", str)
print(new_str)  # 输出 "Hello, Python!"

使用字符串模板

使用字符串模板可以更加直观地进行替换,将需要替换的部分使用占位符表示。可以在字符串模板中定义多个占位符,并通过 format() 方法传入对应的值进行替换。

template = "Hello, {name}!"
new_str = template.format(name="Python")
print(new_str)  # 输出 "Hello, Python!"

字符串分割

字符串分割是指将一个字符串按照特定标记或规则将其拆分成多个子字符串的过程。将一个字符串分割成多个部分可以方便地处理和操作字符串的不同部分。在字符串分割过程中,需要指定一个分隔符或分割规则来确定拆分的位置。分隔符可以是一个字符,也可以是一个字符串。

假设有一个字符串"Hello,World!",想将其分割为两部分,可以使用逗号作为分隔符,分割"Hello"和"World!"两个子字符串。

在Python中,你可以使用字符串的split()方法来分割字符串。这个方法会根据指定的分隔符将字符串分割成多个子字符串,并返回一个包含这些子字符串的列表。在split()方法中,你可以传入一个分隔符作为参数,如果不指定分隔符,默认以空格作为分隔符。

# 分割以空为分隔符的字符串
str1 = "Hello World"
split = str1.split()
print(split_result)  # Output: ['Hello', 'World']分割以逗号为分隔符的字符串
str = "Apple, Banana, Orange"
split_result = str2.split(", ")
print(split_result)  # Output: ['Apple', 'Banana', 'Orange']# 分割以换行符为分隔符的字符串
str3 = "Line 1\nLine 2\nLine 3"
split_result = str3.split("\n")
print(split_result)  # Output: ['Line 1', 'Line 2', 'Line 3']

字符串拼接

字符串拼接看起来好像很简单,但是如果需要按照某种规则来拼接的话,可能也是需要一些方法的。在Python中,你可以使用多种方式进行字符串的拼接。

使用加号 (+) 运算符

使用加号 (+) 运算符,这是最简单的字符串拼接方法,直接通过(+)运算符将两个字符串拼接起来。

str1 = "Hello"
str2 = "World!"
result = str1 + "," + str2
print(result)  # 输出: Hello,World!

使用字符串的格式化方法

字符串的格式化方法通过占位符 {} 插入变量或表达式的值,并使用 format() 方法传递要换的内容。format() 方法可以接受多个参数,按照传入的顺序替换占位符。

str1 = "Hello"
str2 = "World!"
result = "{},{}".format(str1, str2)
print(result)  # 输出: Hello,World!

使用 f-string(格式化字符串)

f-string 是python新引入的一种字符串格式化的简便方法,它在字符串前加上 f 前缀。在 f-string 中,可以直接在花括号 {} 中引用变量、表达式或函数调用,并将其值插入到字符串中。

str1 = "Hello"
str2 = "World!"
result = f"{str1},{str2}"
print(result)  # 输出: Hello,World!

使用字符串的 join() 方法

join() 方法可以将一个可迭代对象中的元素连接成一个新的字符串。它的工作原理是在指定的分隔符上使用调用该方法的字符串作为粘合剂,将可迭代对象中的每个元素连接起来。在示例中," ".join([str1, str2]) 使用空格作为分隔符将列表 [str1, str2] 中的元素连接起来。

str1 = "Hello"
str2 = "World!"
result = ",".join([str1, str2])
print(result)  # 输出: Hello,World!

需要注意的是,使用加号 (+)和join 进行字符串拼接时,需要保证所有操作数都是字符串类型。如果有其他类型的对象,需要先将其转换为字符串再进行拼接。而使用字符串的格式化方法和 f-string 则可以直接将其他类型的对象插入到字符串中。

更多精彩内容,请关注同名公众:一点sir(alittle-sir)

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jackson库收发json格式数据和ajax发送json格式的数据

一、jackson库收发json格式数据 jackson库是maven仓库中用来实现组织json数据功能的库。 json格式  json格式一个组织数据的字符文本格式,它用键值对的方式存贮数据,json数据都是有一对对键值对组成的,键只能是字符串,用双引号包…

wireshark入门指北

文章目录 前言安装Linux上wireshark安装 使用捕获的时候添加过滤条件抓取浏览器https内容 附录抓取非浏览器的https流量 前言 本文长期维护,记录使用wireshark的使用过程。 虽然有官方文档-Wireshark User’s Guide,但是不想去慢慢读。应用层的图形软件…

【OpenCV常用函数:轮廓检测+外接矩形检测】cv2.findContours()+cv2.boundingRect()

文章目录 1、cv2.findContours()2、cv2.boundingRect() 1、cv2.findContours() 对具有黑色背景的二值图像寻找白色区域的轮廓,因此一般都会先经过cvtColor()灰度化和threshold()二值化后的图像作为输入。 cv2.findContous(image, mode, method[, contours[, hiera…

安卓13不再支持PPTP怎么办?新的连接解决方案分享

随着Android 13的发布,我们迎来了一个令人兴奋的新品时刻。然而,对于一些用户而言,这也意味着必须面对一个重要的问题:Android 13不再支持PPTP协议。如果你是一个习惯使用PPTP协议来连接换地址的用户,那么你可能需要重…

Groovy语法

工程目录 请点击下面工程名称,跳转到代码的仓库页面,将工程 下载下来 Demo Code 里有详细的注释 代码:LearnGroovy 参考文献 配置Groovy开发环境(Windows)IntelliJ IDEA创建第一个Groovy工程基于IntelliJ IDEA创建第一个Groovy工程

APP外包开发的H5开发框架

跨平台移动应用开发框架允许开发者使用一套代码在多个操作系统上构建应用程序,从而节省时间和资源。以下是一些常见的跨平台移动应用开发框架以及它们的特点,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司&#xff0…

JavaSpring加载properties文件

手动加载 #properties文件 jdbc.driver1 <?xml version"1.0" encoding"UTF-8"?> <!-- 开启context命名空间--> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XM…

OpenCV 中的光流 (C++/Python)

什么是光流? 光流是一项视频中两个连续帧之间每像素运动估计的任务。基本上,光流任务意味着计算像素的位移矢量作为两个相邻图像之间的对象位移差。光流的主要思想是估计物体由其运动或相机运动引起的位移矢量。 理论基础 假设我们有一个灰度图像——具有像素强度的矩阵。我…

ubuntu虚拟机磁盘压缩:vmware-toolbox-cmd命令实现

压缩之前&#xff0c;虚拟机占用磁盘空间 虚拟机必须已经安装vmware-tool&#xff0c;运行如下命令&#xff0c;参看磁盘的挂载点 sudo /usr/bin/vmware-toolbox-cmd disk list $sudo /usr/bin/vmware-toolbox-cmd disk list [sudo] password for lkmao: Shrink disk is disab…

mac电脑 node 基本操作命令

1. 查看node的版本 node -v2. 查看可安装的node版本 sudo npm view node versions3. 安装指定版本的node sudo n 18.9.04. 安装最新版本node sudo n latest5. 安装最新稳定版 sudo n stable6. 清楚node缓存 sudo npm cache clean -f7. 列举已经安装的node版本 n ls 8. 在…

01:STM32点灯大师和蜂鸣器

目录 一:点亮1个LED 1:连接图 2:函数介绍 3:点灯代码 二:LED闪烁 1:函数介绍 2:闪烁代码 三:LED流水灯 1:连接图 2:函数介绍 3:流水灯代码 四:按键控制LED 1:电路图 2:连接图 3:函数介绍 4:按键控制LED代码 五:蜂鸣器 1:连接图 2:蜂鸣器代码 六:光敏电阻控制…

【MFC】05.MFC六大机制:程序启动机制-笔记

MFC程序开发所谓是非常简单&#xff0c;但是对于我们逆向人员来说&#xff0c;如果想要逆向MFC程序&#xff0c;那么我们就必须了解它背后的机制&#xff0c;这样我们才能够清晰地逆向出MFC程序&#xff0c;今天这篇文章就来带领大家了解MFC的第一大机制&#xff1a;程序启动机…

进销存管理系统(小杨国贸)springboot采购仓库财务java jsp源代码mysql

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 进销存管理系统&#xff08;小杨国贸&#xff09;spri…

【Linux】网络通信

【Linux】网络通信 文章目录 【Linux】网络通信1、网络基础1.1 计算机网络1.2 网络模型TCP & UDP1&#xff09;IP地址2&#xff09;端口3&#xff09;TCP协议与UDP协议的比较 1.3 网络传输1.3.1 传输逻辑1.3.2 传输条件1.3.3 传输流程 1.4 地址管理 2、网络编程2.1 基本概念…

【面试八股文】每日一题:谈谈你对集合的理解

每日一题-Java核心-谈谈你对集合的理解【面试八股文】 谈谈你对集合的理解 Java集合是Java编程语言中用于存储数据的容器。它提供了一系列的类和接口&#xff0c;用于操作和管理数据集合。Java集合框架主要包括以下几个重要的接口和类&#xff1a; List&#xff1a;List是一个有…

ubuntu 如何命令行打开系统设置(Wifi,网络,应用程序...)

关于GNOME GNOME 是一个自由、开放源代码的桌面环境&#xff0c;它运行在 Linux 和其他类 UNIX 操作系统上。它是 GNU 项目的一部分&#xff0c;旨在为 Linux 操作系统提供一个现代化、易于使用的用户界面。 GNOME 桌面环境包括许多应用程序&#xff0c;例如文件管理器、文本编…

Centos7源码安装redis

1、下载redis Index of /releases/ 2、解压redis tar -xvf redis-6.2.9.tar.gz 3、进入解压后的目录 cd redis-6.2.9/4、指定内存分配器为 libc make MALLOClibc 5、进入src目录&#xff0c;安装 cd src && make install6、运行 ./redis-server 7、添加开机…

BI技巧丨利用Index计算半累计

在实际的业务场景中&#xff0c;特别是财务模块和库存管理模块&#xff0c;经常需要我们针对每个月的期初期末进行相关指标计算&#xff0c;这也是我们之前曾经提到的Calculate基础应用——半累计计算。 现在我们也可以通过微软新推出的Index开窗函数来解决这一问题。 INDEX函…

Linux 终端操作命令(3)内部命令用法

Linux 终端操作命令 内部命令用法 A- alias NAME alias - Define or display aliases. SYNOPSIS alias [-p] [name[value] ... ] DESCRIPTION Define or display aliases. Without arguments, alias prints the list of aliases in the reusable form al…

Seata - 入门笔记

1、事务 访问并可能更新数据库中数据库中各种数据线的一个程序执行单元 原子性&#xff1a;事务是一个不可分割的工作单位&#xff0c;一个事务要么都做要么都不做 一致性&#xff1a;必须是使数据库从一个一致性到另一个一致性的状态&#xff0c;中间状态不能被观察到 隔离…