Python字符串基础与高级操作

embedded/2024/12/22 11:25:08/

在Python中,字符串是不可变的数据类型,用于存储一系列的字符。它们可以被创建、访问、操作和格式化,但一旦创建,其内容就不能改变。下面是一篇关于Python字符串技术的详细讲解,包括创建、访问、更新、转义、运算符、格式化、三引号字符串以及内建函数的使用。

创建字符串

字符串可以通过单引号、双引号或三引号创建。单引号和双引号之间没有区别,但三引号允许创建多行字符串。

python"># 使用单引号
single_quote = 'Hello, World!'# 使用双引号
double_quote = "Hello, World!"# 使用三引号创建多行字符串
multi_line = """Hello,
This is a
multi-line string."""# 打印字符串
print(single_quote)  # Hello, World!
print(double_quote)  # Hello, World!
print(multi_line)  # Hello,\nThis is a\nmulti-line string.
访问字符串中的值

字符串索引从0开始,可以使用方括号来访问单个字符。

python"># 创建字符串
s = "Python"# 访问第一个字符
print(s[0])  # P# 访问最后一个字符
print(s[-1])  # n# 访问中间的字符
print(s[2])  # t
Python字符串切片详解

字符串切片允许你提取字符串的一部分,语法为 [start:stop:step],其中 start 是切片的起始索引(默认为0),stop 是切片的结束索引(默认为字符串的长度),而 step 是切片的步长(默认为1)。如果省略 startstop,Python会自动使用默认值。

让我们通过一些示例来详细了解切片的工作原理:

python"># 定义一个字符串
s = "Hello, world!"# 从索引0开始,到索引5结束(不包括第5个位置的字符),默认步长为1
# 输出: 'Hello'
print(s[0:5])  # 'Hello'# 从索引7开始,到字符串的结尾
# 输出: 'world!'
print(s[7:])  # 'world!'# 从字符串的开头,到索引7结束(不包括第7个位置的字符)
# 输出: 'Hello,'
print(s[:7])  # 'Hello,'# 从字符串的倒数第3个字符开始,到字符串的结尾
# 输出: '!d'
print(s[-3:])  # '!d'# 使用步长为2,从索引0开始,到字符串结尾
# 输出: 'Hlo ol!'
print(s[::2])  # 'Hlo ol!'# 从索引5开始,到索引-1结束(不包括最后一个字符),步长为-1(逆序)
# 输出: 'dlrow ,olleH'
print(s[5:0:-1])  # 'dlrow ,olleH'# 完全逆序字符串,从结尾到开头,步长为-1
# 输出: '!dlrow ,olleH'
print(s[::-1])  # '!dlrow ,olleH'
字符串更新

由于字符串是不可变的,不能直接修改。但可以创建新的字符串。

python"># 创建字符串
s = "Hello"# 更新字符串 - 实际上是创建一个新的字符串
new_s = s + ", World!"# 打印新字符串
print(new_s)  # Hello, World!
转义字符串

转义字符允许在字符串中使用特殊字符。

python"># 使用转义字符
print("Line1\nLine2")  # Line1\nLine2 -> 分两行显示:Line1 和 Line2
print("Tab\tSpace")  # Tab\tSpace -> 显示:Tab    Space(四个空格)
字符串运算符

字符串支持一些基本的运算符,如连接(+)、重复(*)、索引([])、切片([:])和成员资格检查(innot in)。

python"># 字符串连接
print("Py" + "thon")  # Python# 字符串重复
print("Py" * 3)  # PyPyPy# 成员资格检查
print("y" in "Python")  # True
print("z" not in "Python")  # True
字符串格式化

可以使用 %format() 方法或 f-string 来格式化字符串。

python"># 使用 % 符号
print("%s is %d years old." % ("Tom", 20))  # Tom is 20 years old.# 使用 format() 方法
print("{} is {} years old.".format("Tom", 20))  # Tom is 20 years old.# 使用 f-string (Python 3.6+)
name = "Tom"
age = 20
print(f"{name} is {age} years old.")  # Tom is 20 years old.
Python字符串三引号

三引号字符串可以包含换行符,适合创建多行注释或长字符串。

python"># 使用三引号
long_string = """Hello,
This is a long string."""
print(long_string)  # Hello,\nThis is a long string.
Python 的字符串内建函数

字符串有许多内建函数,如 len(), upper(), lower(), strip(), split(), join() 等。

python">s = " Python "
# 字符串内建函数示例
print(len(s))  # 8
print(s.strip())  # Python
print(s.upper())  #  PYTHON 
print(s.lower())  # python 
print(s.split())  # [' Python ']
print("-".join(["Hello", "World"]))  # Hello-World

以上就是Python字符串及其操作的全面指南,包括创建、访问、更新、格式化、切片语法和内建函数的使用。掌握这些概念将极大地提高你使用Python处理文本数据的能力。


http://www.ppmy.cn/embedded/59121.html

相关文章

什么是Web3D?国内有哪些公司可以做?

Web3D 是一种基于网页的三维立体虚拟现实技术。利用计算机图形学、图像处理、人机交互等技术,将现实世界中的物体、场景或概念以三维立体的方式呈现在网页里。Web3D 技术可以让用户在任何时间、任何地点,通过互联网与虚拟世界进行互动,获得身…

SpringBoot整合 Kaptcha 验证码

文章目录 1 Kaptcha 验证码1.1 引言1.2 Kaptcha1.2.1 pom.xml1.2.2 配置类1.2.2.1 Redis配置类RedisConfig1.2.2.2 验证码配置类KaptchaConfig 1.2.3 验证码控制层1.2.4 登录控制层 1 Kaptcha 验证码 1.1 引言 为防止验证系统被暴力破解,很多系统都增加了验证码效…

大模型/NLP/算法面试题总结8——预训练模型是什么?微调的方法?

1、预训练模型 预训练模型(Pre-trained Model)是在大规模数据集上提前训练好的深度学习模型,这些模型可以被用于多种不同的任务中,而不仅仅是它们在原始训练数据上所学习的特定任务。预训练模型的核心思想是利用在大量数据上学习…

05.CSS 缓动变量 首字下沉 放大缩小动画

CSS 缓动变量 在设计中,大多数 Web 开发人员对于 transition-timing-function 的大多数用例使用内置的 ease、ease-in、ease-out 或 ease-in-out 函数。虽然这些函数适合日常使用,但还有一个功能更强大但令人生畏的选项可用,即 bezier-curve() 函数。 使用 bezier-curve(),我…

封装了一个仿照抖音效果的iOS评论弹窗

需求背景 开发一个类似抖音评论弹窗交互效果的弹窗,支持滑动消失, 滑动查看评论 效果如下图 思路 创建一个视图,该视图上面放置一个tableView, 该视图上添加一个滑动手势,同时设置代理,实现代理方法 (BOOL)gestur…

健康云足迹:在iCloud中珍藏您的个人健康检查记录

健康云足迹:在iCloud中珍藏您的个人健康检查记录 随着健康意识的提高,个人健康数据管理变得越来越重要。iCloud作为苹果公司提供的云服务,不仅能够同步您的联系人、日历和照片,还能成为您个人健康检查记录的安全港湾。本文将详细…

ScrapySharp框架:小红书视频数据采集的API集成与应用

引言 随着大数据时代的到来,数据采集成为了互联网企业获取信息的重要手段。小红书作为一个集社交和电商于一体的平台,其丰富的用户生成内容(UGC)为数据采集提供了丰富的资源。本文将介绍如何使用ScrapySharp框架进行小红书视频数…

微信小程序 2024年更新内容汇总

本心、输入输出、结果 文章目录 微信小程序 2024年更新内容汇总v3.4.10 (2024-07-03)v3.4.9 (2024-06-26)v3.4.8 (2024-06-19)v3.4.7 (2024-06-07)v3.4.6 (2024-05-29)v3.4.5 (2024-05-23)v3.4.4 (2024-05-11)v3.4.3 (2024-04-24)v3.4.2 (2024-04-11)v3.4.1 (2024-04-02)v3.4.1…