Python 字符串操作详解

news2024/11/25 7:55:31

目录

Python 字符串操作详解

引言

1. 字符串的定义和初始化

2. 字符串的索引和切片

3. 字符串的连接和复制

4. 字符串的常用方法

a. len():获取字符串长度

b. lower() 和 upper():转换大小写

c. strip():去除首尾空白字符

d. split():分割字符串

e. join():连接字符串列表

f. replace():替换字符串

g. startswith() 和 endswith():检查前缀和后缀

h. find() 和 index():查找子字符串

5. 字符串格式化

a. % 操作符

b. str.format() 方法

c. f-string(Python 3.6+)

6. 字符编码


Python 字符串操作详解

引言

字符串是编程中最常用的数据类型之一。Python 提供了丰富的方法和操作来处理字符串。本文将详细介绍 Python 字符串的基本操作、常用方法及其代码示例,帮助读者更好地理解和使用 Python 字符串。

1. 字符串的定义和初始化

在 Python 中,字符串可以用单引号 ' ' 或双引号 " " 来定义。

示例代码

 
# 使用单引号定义字符串
single_quoted_string = 'Hello, World!'

# 使用双引号定义字符串
double_quoted_string = "Hello, World!"

print(single_quoted_string)  # 输出: Hello, World!
print(double_quoted_string)  # 输出: Hello, World!
2. 字符串的索引和切片

字符串的每个字符都有一个索引,索引从 0 开始。可以使用索引来访问字符串中的特定字符。此外,还可以使用切片来获取字符串的一部分。

示例代码

 
# 定义字符串
s = "Hello, World!"

# 访问第一个字符
print(s[0])  # 输出: H

# 访问最后一个字符
print(s[-1])  # 输出: !

# 获取从第 0 到第 5 个字符(不包括第 5 个)
print(s[0:5])  # 输出: Hello

# 获取从第 7 个字符到最后一个字符
print(s[7:])  # 输出: World!

# 获取从倒数第 5 个字符到最后一个字符
print(s[-5:])  # 输出: World!
3. 字符串的连接和复制

可以使用 + 运算符来连接两个字符串,使用 * 运算符来复制字符串。

示例代码

 
# 定义字符串
s1 = "Hello"
s2 = "World"

# 连接字符串
s3 = s1 + " " + s2
print(s3)  # 输出: Hello World

# 复制字符串
s4 = s1 * 3
print(s4)  # 输出: HelloHelloHello
4. 字符串的常用方法

Python 提供了许多内置方法来处理字符串。以下是一些常用的字符串方法及其示例。

a. len():获取字符串长度
 
s = "Hello, World!"
print(len(s))  # 输出: 13
b. lower() 和 upper():转换大小写
 
s = "Hello, World!"
print(s.lower())  # 输出: hello, world!
print(s.upper())  # 输出: HELLO, WORLD!
c. strip():去除首尾空白字符
 
s = " Hello, World! "
print(s.strip())  # 输出: Hello, World!
d. split():分割字符串
 
s = "Hello, World!"
print(s.split(","))  # 输出: ['Hello', ' World!']
e. join():连接字符串列表
 
words = ["Hello", "World"]
s = " ".join(words)
print(s)  # 输出: Hello World
f. replace():替换字符串
 
s = "Hello, World!"
print(s.replace("World", "Python"))  # 输出: Hello, Python!
g. startswith() 和 endswith():检查前缀和后缀
 
s = "Hello, World!"
print(s.startswith("Hello"))  # 输出: True
print(s.endswith("World!"))  # 输出: True
h. find() 和 index():查找子字符串
 
s = "Hello, World!"
print(s.find("World"))  # 输出: 7
print(s.index("World"))  # 输出: 7

# 如果找不到子字符串,find 返回 -1,而 index 抛出 ValueError
print(s.find("Python"))  # 输出: -1
# print(s.index("Python"))  # 抛出 ValueError
5. 字符串格式化

Python 提供了多种字符串格式化的方法,包括 % 操作符、str.format() 方法和 f-string。

a. % 操作符
 
name = "Alice"
age = 30
print("My name is %s and I am %d years old." % (name, age))  # 输出: My name is Alice and I am 30 years old.
b. str.format() 方法
 
name = "Alice"
age = 30
print("My name is {} and I am {} years old.".format(name, age))  # 输出: My name is Alice and I am 30 years old.
c. f-string(Python 3.6+)
 
name = "Alice"
age = 30
print(f"My name is {name} and I am {age} years old.")  # 输出: My name is Alice and I am 30 years old.
6. 字符编码

Python 支持多种字符编码,最常见的编码是 UTF-8。可以使用 encode()decode() 方法进行编码和解码操作。

示例代码

 
# 编码
s = "你好,世界!"
encoded_s = s.encode('utf-8')
print(encoded_s)  # 输出: b'\xe4\xbd\xa0\xe5\xa5\xbd\xef\xbc\x8c\xe4\xb8\x96\xe7\x95\x8c\xef\xbc\x81'

# 解码
decoded_s = encoded_s.decode('utf-8')
print(decoded_s)  # 输出: 你好,世界!

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

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

相关文章

链表刷题|判断回文结构

题目来自于牛客网,本文章仅记录学习过程的做题理解,便于梳理思路和复习 我做题喜欢先把时间复杂度和空间复杂度放一边,先得有大概的解决方案,最后如果时间或者空间超了再去优化即可。 思路一:要判断是否为回文结构则…

0基础跟德姆(dom)一起学AI NLP自然语言处理01-自然语言处理入门

1 什么是自然语言处理 自然语言处理(Natural Language Processing, 简称NLP)是计算机科学与语言学中关注于计算机与人类语言间转换的领域. 2 自然语言处理的发展简史 3 自然语言处理的应用场景 语音助手机器翻译搜索引擎智能问答...

Linux系统使用valgrind分析C++程序内存资源使用情况

内存占用是我们开发的时候需要重点关注的一个问题,我们可以人工根据代码推理出一个消耗内存较大的函数,也可以推理出大概会消耗多少内存,但是这种方法不仅麻烦,而且得到的只是推理的数据,而不是实际的数据。 我们可以…

跨平台开发_RTC程序设计:实时音视频权威指南 2

1.2.1 一切皆bit 将8 bit分为一组,我们定义了字节(Byte)。 1956年6月,使用了Byte这个术语,用来表示数字信息的基本单元。 最早的字节并非8 bit。《计算机程序设计的艺术》一书中的MIX机器采用6bit作为1Byte。8 bit的Byte约定,和I…

WIFI:长GI与短GI有什么区别和影响

1、GI的作用 Short GI(Guard Interval)是802.11n针对802.11a/g所做的改进。射频芯片在使用OFDM调制方式发送数据时,整个帧是被划分成不同的数据块进行发送的,为了数据传输的可靠性,数据块之间会有GI,用以保证接收侧能够正确的解析…

ssm实战项目──哈米音乐(二)

目录 1、流派搜索与分页 2、流派的添加 3、流派的修改 4、流派的删除 接上篇:ssm实战项目──哈米音乐(一),我们完成了项目的整体搭建,接下来进行后台模块的开发。 首先是流派模块: 在该模块中采用分…

C++使用minio-cpp(minio官方C++ SDK)与minio服务器交互简介

目录 minio简介minio-cpp简介minio-cpp使用 minio简介 minio是一个开源的高性能对象存储解决方案,完全兼容Amazon S3 API,支持分布式存储,适用于大规模数据架构,容易集成,而且可以方便的部署在集群中。 如果你已经部…

细说敏捷:敏捷四会之standup meeting

上一篇文章中,我们讨论了 敏捷四会 中 冲刺计划会 的实施要点,本篇我们继续分享敏捷四会中实施最频繁,团队最容易实施但往往也最容易走形的第二个会议:每日站会 关于每日站会的误区 站会是一个比较有标志性的仪式活动&#xff0…

二分法(折半法)查找【有动图】

二分法,也叫做折半法,就是一种通过有序表的中间元素与目标元素进行对比,根据大小关系排除一半元素,然后继续在剩余的一半中进行查找,重复这个过程直至找到目标值或者确定目标值不存在。 我们从结论往回推,…

FreeRTOS——低功耗管理

目录 一、概念及其应用 1.1应用 1.2STM32电源管理系统 2.3STM32低功耗模式 2.3.1睡眠模式 2.3.2停止模式 2.3.3待机模式 三、Tickless低功耗模式 3.1低功耗模式配置 3.2低功耗模式应用 3.3低功耗电路分析 3.4低功耗处理相关接口 四、实现原理 4.1任务等待删除的检查…

【STM32】MPU6050初始化常用寄存器说明及示例代码

一、MPU6050常用配置寄存器 1、电源管理寄存器1( PWR_MGMT_1 ) 此寄存器允许用户配置电源模式和时钟源。 DEVICE_RESET :用于控制复位的比特位。设置为1时复位 MPU6050,内部寄存器恢复为默认值,复位结束…

2024年亚太地区数学建模大赛A题-复杂场景下水下图像增强技术的研究

复杂场景下水下图像增强技术的研究 对于海洋勘探来说,清晰、高质量的水下图像是深海地形测量和海底资源调查的关键。然而,在复杂的水下环境中,由于光在水中传播过程中的吸收、散射等现象,导致图像质量下降,导致模糊、…

自动驾驶3D目标检测综述(三)

前两篇综述阅读理解放在这啦,有需要自行前往观看: 第一篇:自动驾驶3D目标检测综述(一)_3d 目标检测-CSDN博客 第二篇:自动驾驶3D目标检测综述(二)_子流行稀疏卷积 gpu实现-CSDN博客…

【Linux | 计网】TCP协议详解:从定义到连接管理机制

目录 1.TCP协议的定义: 2.TCP 协议段格式 3.TCP两种通信方式 4.确认应答(ACK)机制 解决“后发先至”问题 5.超时重传机制 那么, 超时的时间如何确定? 6.连接管理机制: 6.1.三次握手: 为什么需要3次握手,一次两次不行吗…

Spire.PDF for .NET【页面设置】演示:打开 PDF 时自动显示书签或缩略图

用户打开 PDF 文档时,他们会看到 PDF 的初始视图。默认情况下,打开 PDF 时不会显示书签面板或缩略图面板。在本文中,我们将演示如何设置文档属性,以便每次启动文件时都会打开书签面板或缩略图面板。 Spire.PDF for .NET 是一款独…

2024年12月Gesp七级备考知识点拾遗第一期(图的定义及遍历)

目录 总序言 知识点拾遗​编辑 度数 环 二叉树 图的遍历 深度优先 广度优先 连通与强连通 有什么不同 构成分别至少需要几条边(易错题)? 无向连通图 有向强连通图 完全图 什么是完全图 无向完全图最少边数 有向完全图最少边…

Doris 的Explain 和 Profile

什么是 explain? 执行计划是对一条 SQL 具体的执行方式和执行过程的描述。例如,对于一个涉及两表连接的 SQL,执行计划会展示这两张表的访问方式信息、连接方式信息,以及各个操作之间的顺序。 在 Doris 系统中提供了 Explain 工具…

QT QVBoxLayout控件 全面详解

本系列文章全面的介绍了QT中的57种控件的使用方法以及示例,包括 Button(PushButton、toolButton、radioButton、checkBox、commandLinkButton、buttonBox)、Layouts(verticalLayout、horizontalLayout、gridLayout、formLayout)、Spacers(verticalSpacer、horizonta…

对sklearn库中的鸢尾花数据集内容和结构的详解认识和load_iris()函数查找学习举例

对sklearn库中的鸢尾花数据集内容和结构的详解认识和load_iris()函数查找学习举例 对sklearn库中的鸢尾花数据集内容和结构的详解认识和load_iris函数查找学习举例 对sklearn库中的鸢尾花数据集内容和结构的详解认识和load_iris()函数查找学习举例一、鸢尾花数据位置二、鸢尾花…

动态反馈控制器(DFC)和 服务率控制器(SRC);服务率和到达率简单理解

目录 服务率和到达率简单理解 服务率 到达率 排队论中的应用 论文解析:队列等待成本动态感知控制模型 动态反馈和队列等待成本意识: 服务速率调整算法: 动态反馈控制器(DFC)和 服务率控制器(SRC) SRC公式4的原理 算力资源分配系统中的调整消耗 举例说明 服务…