当前位置: 首页 > news >正文

python记录之字符串

在Python中,字符串是一种非常常见且重要的数据类型,用于存储文本信息。下面,我们将对Python字符串进行深入的讲解,包括其基本操作、常见方法、格式化以及高级特性。

1. 字符串的创建

在Python中,字符串可以通过单引号、双引号或三引号(单三引号或双三引号)来创建。

# 使用单引号创建字符串
s1 = 'Hello, World!'# 使用双引号创建字符串(和单引号一样)
s2 = "Hello, World!"# 使用三引号创建多行字符串
s3 = """
This is a multiline string.
It can span multiple lines.
"""

2. 字符串的基本操作

2.1 索引和切片

字符串中的字符可以通过索引来访问,索引从0开始。切片操作可以获取字符串的子串。

s = 'Hello, World!'
print(s[0])  # 输出 'H'
print(s[4:10])  # 输出 'o, Wor'

2.2 字符串连接和重复

使用加号+可以连接两个字符串,使用乘号*可以重复字符串。

s1 = 'Hello'
s2 = 'World'
s3 = s1 + ' ' + s2  # 连接字符串
print(s3)  # 输出 'Hello World's4 = 'Hi' * 3  # 重复字符串
print(s4)  # 输出 'HiHiHi'

2.3 成员判断

使用in关键字可以判断一个字符或子串是否存在于字符串中。

s = 'Hello, World!'
print('o' in s)  # 输出 True
print('Python' in s)  # 输出 False

3. 字符串的常用方法

Python字符串提供了大量的内置方法,用于处理和分析字符串。

3.1 查找和替换

  • find(substr, start=0, end=len(string)):查找子串,返回索引或-1。
  • replace(old, new[, count]):替换子串。
s = 'Hello, World!'
print(s.find('World'))  # 输出 7
print(s.replace('World', 'Python'))  # 输出 'Hello, Python!'

3.2 分割和连接

  • split([sep[, maxsplit]]):根据分隔符分割字符串。
  • join(iterable):使用指定的字符串将序列中的元素连接成一个新的字符串。
s = 'apple,banana,cherry'
print(s.split(','))  # 输出 ['apple', 'banana', 'cherry']
print(' '.join(['Hello', 'World']))  # 输出 'Hello World'

3.3 大小写转换

  • lower():将字符串转换为小写。
  • upper():将字符串转换为大写。
  • capitalize():将字符串的首字母转换为大写。
  • title():将字符串的每个单词的首字母转换为大写。
s = 'Hello World'
print(s.lower())  # 输出 'hello world'
print(s.upper())  # 输出 'HELLO WORLD'
print(s.capitalize())  # 输出 'Hello world'
print(s.title())  # 输出 'Hello World'

3.4 去除空白字符

  • strip([chars]):去除字符串开头和结尾的空白字符(或其他指定字符)。
  • lstrip([chars]):去除字符串开头的空白字符(或其他指定字符)。
  • rstrip([chars]):去除字符串结尾的空白字符(或其他指定字符)。
s = '   Hello World   '
print(s.strip())  # 输出 'Hello World'

4. 字符串格式化

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

4.1 %格式化

name = 'Alice'
age = 30
print('My name is %s and I am %d years old.' % (name, age))

4.2 str.format()方法

name = "Alice"  
age = 30  
formatted_string = "My name is {} and I am {} years old.".format(name, age)  
print(formatted_string)  # 输出: My name is Alice and I am 30 years old.

4.3 f-string(格式化字符串字面量)

f-string 是 Python 3.6 之后引入的一种新的字符串格式化方法,它允许你在字符串中嵌入表达式,这些表达式在运行时会被计算并转换为字符串。

name = 'Alice'
age = 30
print(f'My name is {name} and I am {age} years old.')

5. 字符串编码

在 Python 中,字符串默认是以 Unicode 编码的。Unicode 是一种字符集,它为世界上几乎所有的字符都分配了一个唯一的编号(称为码点或 Unicode 码位)。当你处理外部数据时,可能会遇到不同的编码方式,如 UTF-8、GBK、ASCII 等。Python 提供了 encode()decode() 方法来处理字符串的编码和解码。

# 编码为 UTF-8
utf8_encoded = 'Hello, World!'.encode('utf-8')# 解码 UTF-8 编码的字节串
decoded_string = utf8_encoded.decode('utf-8')
print(decoded_string)  # 输出 'Hello, World!'

6. 字符串的高级特性

6.1 字符串是不可变的

Python 中的字符串是不可变的,这意味着一旦创建了一个字符串,你就不能更改它的内容。但是,你可以通过拼接、切片等方式创建新的字符串。

6.2 字符串的原地操作

虽然字符串本身是不可变的,但 Python 的某些操作(如 join()replace() 等)会返回新的字符串,而不是修改原始字符串。这些操作是原地(in-place)的,因为它们不会修改任何已存在的对象。

6.3 字符串与字节串的转换

在处理文件、网络数据等时,你经常会遇到字节串(bytes)而不是字符串。Python 提供了 encode()decode() 方法来在字符串和字节串之间进行转换。

6.4 字符串模板

除了上述的格式化方法外,Python 还提供了 string.Template 类来创建简单的字符串模板。这在你需要多次插入相同的数据到字符串的不同位置时非常有用。

from string import Templates = Template('Hello, $name! You are $age years old.')
print(s.substitute(name='Alice', age=30))  # 输出 'Hello, Alice! You are 30 years old.'

7. 总结

Python 的字符串功能强大且易于使用。通过掌握字符串的基本操作、常用方法、格式化方式以及高级特性,你可以更有效地处理和分析文本数据。无论是进行简单的文本处理,还是构建复杂的文本分析系统,Python 的字符串功能都能为你提供强大的支持。

相关文章:

python记录之字符串

在Python中,字符串是一种非常常见且重要的数据类型,用于存储文本信息。下面,我们将对Python字符串进行深入的讲解,包括其基本操作、常见方法、格式化以及高级特性。 1. 字符串的创建 在Python中,字符串可以通过单引号…...

Elasticsearch 认证模拟题 - 15

一、题目 原索引 task1 的字段 title 字段包含单词 The,查询 the 可以查出 1200 篇文档。重建 task1 索引为 task1_new,重建后的索引, title 字段查询 the 单词,不能匹配到任何文档。 PUT task1 {"mappings": {"…...

g++ 预处理 编译 汇编 链接 命令

g 预处理 编译 汇编 链接 命令 在命令行中使用 g 预处理、编译、汇编和链接源代码文件通常遵循以下步骤: 预处理(Preprocessing):将源代码文件转换为经过预处理器处理的中间文件。 g -E source.cpp -o source.i 编译&#xff…...

计算机视觉中的low-level与 high-level任务

文章目录 low-level任务high-level任务区别联系others参考在计算机视觉领域中,low-level任务和high-level任务是两个重要的概念,他们分别涉及图像处理和分析的不同的层次。 low-level任务 low-level任务主要关注的是图像的底层特征,如颜色、纹理、边缘、形状等。通常涉及对…...

安徽京准NTP时钟系统:GPS北斗卫星授时下的生活重塑

安徽京准NTP时钟系统:GPS北斗卫星授时下的生活重塑 安徽京准NTP时钟系统:GPS北斗卫星授时下的生活重塑 时间的流逝自古以来时钟都是人类生活与活动的基础。然而,随着科技的进步,我们对时间管理和测量的方法已经发生了翻天覆地的变…...

图论第8天

685.冗余连接II 这题需要考虑两种情况&#xff1a; 1.两个输入 2.没有两个输入就是有成环 class Solution { public:static const int N 1005;int father[N];int n;void init(){for (int i 0; i < n; i){father[i] i;}}int find(int x){return x father[x] ? x : f…...

Python怎么配置环境变量:深度探索与实战指南

Python怎么配置环境变量&#xff1a;深度探索与实战指南 在Python编程的世界中&#xff0c;环境变量的配置是一个至关重要的步骤。它不仅影响着Python解释器的运行&#xff0c;还关系到各种第三方库和工具的使用。本文将带你深度探索如何配置Python的环境变量&#xff0c;并为…...

计网期末复习指南(六):应用层(DNS、FTP、URL、HTTP、SMTP、POP3)

前言&#xff1a;本系列文章旨在通过TCP/IP协议簇自下而上的梳理大致的知识点&#xff0c;从计算机网络体系结构出发到应用层&#xff0c;每一个协议层通过一篇文章进行总结&#xff0c;本系列正在持续更新中... 计网期末复习指南&#xff08;一&#xff09;&#xff1a;计算…...

HTML做成一个炫酷跳动爱心的页面

大家好&#xff0c;今天制作制作一个炫酷跳动爱心的页面&#xff01; 先看具体效果&#xff1a; 要创建一个炫酷跳动爱心的HTML页面&#xff0c;你可以使用HTML、CSS和JavaScript的组合。以下是一个简单的示例&#xff0c;它使用CSS动画和JavaScript来实现跳动效果。 首先&…...

React + SpringBoot实现图片预览和视频在线播放,其中视频实现切片保存和分段播放

图片预览和视频在线播放 需求描述 实现播放视频的需求时&#xff0c;往往是前端直接加载一个mp4文件&#xff0c;这样做法在遇到视频文件较大时&#xff0c;容易造成卡顿&#xff0c;不能及时加载出来。我们可以将视频进行切片&#xff0c;然后分段加载。播放一点加载一点&am…...

Suse Linux ssh配置免密后仍需要输入密码

【问题描述】 Suse Linux已经配置了ssh免密&#xff0c;但无法ssh到目标服务器。 对自身的ssh登陆也需要输入密码。 系统–Suse 15 SP5 【重现步骤】 1.使用ssh-keygen -t rsa生产key文件 2.使用ssh-copy-id拷贝public key到目标机器(或者自身) 3.配置成功后ssh 目标时仍需要输…...

apifox 生成签名

目录 前言准备编写签名脚本签名说明捋清思路编码获取签名所需的参数生成签名将签名放到合适的位置完整代码 在apifox中配置脚本新增公共脚本引用公共脚本添加环境变量 参考 前言 略 准备 查看apifox提供的最佳实践文章&#xff1a;接口签名如何处理 编写签名脚本 签名说明…...

介绍建造者模式

建造者模式 将一个复杂对象的创建与它的表示分离&#xff0c;使得同样的构建过程可以创建不同的表示 四种角色 Product 产品角色 指的是一个具体的产品对象Builder 抽象建造者 创建一个产品对象的各个部件的接口/抽象类ConcreteBuilder 具体建造者 实现或继承抽象建造者接口…...

【全部更新完毕】2024全国大学生数据统计与分析竞赛B题思路代码文章教学数学建模-电信银行卡诈骗的数据分析

电信银行卡诈骗的数据分析 摘要 电信银行卡诈骗是当前社会中严重的犯罪问题&#xff0c;分析电信银行卡交易数据&#xff0c;找出高风险交易特征&#xff0c;建立预测模型&#xff0c;将有助于公安部门和金融机构更好地防范诈骗行为&#xff0c;保障用户的财产安全。 针对问…...

【应用浅谈】Odoo的库存计价与产品成本(三)

序言:时间是我们最宝贵的财富,珍惜手上的每个时分 Odoo的库存&#xff08;Stock&#xff09;模块拥有众多功能&#xff0c;其中库存计价是一项非常重要的功能&#xff0c;原生的成本方法分三种&#xff1a;【标准成本】&#xff0c;【平均成本】&#xff0c;【先进先出】&#…...

数据结构之ArrayList与顺序表(下)

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a;数据结构&#xff08;Java版&#xff09; 目录 ArrayList的具体使用 118. 杨辉三角 扑克洗牌算法 接上篇&#xff1a;数据结构之ArrayLis…...

openi启智社区 aarch64 npu环境安装飞桨paddlepaddle和PaddleNLP(失败)

以前在启智社区都是编译安装飞桨&#xff0c;这回看到飞桨提供了npu安装包&#xff0c;兴冲冲的以为安装很简单。 之所以安装飞桨&#xff0c;是因为想在启智社区的启智大脑调试环境使用最新的PaddleNLP&#xff0c;结果报错&#xff1a;No module named paddle.nn.layer.laye…...

【漏洞复现】多客圈子论坛系统 httpGet 任意文件读取漏洞

0x01 产品简介 多客圈子论坛系统是一种面向特定人群或特定话题的社交网络&#xff0c;它提供了用户之间交流、分享、讨论的平台。在这个系统中&#xff0c;用户可以创建、加入不同的圈子&#xff0c;圈子可以是基于兴趣、地域、职业等不同主题的。用户可以在圈子中发帖、评论、…...

46-1 护网溯源 - 钓鱼邮件溯源

一、客户提供钓鱼邮件样本 二、行为分析 三、样本分析 对钓鱼邮件中的木马程序1111.exe文件进行了分析,提交了360安全大脑沙箱云和微步在线云沙箱。 360安全大脑沙箱云显示,该1111.exe文件存在危险,因此在解压时需要谨慎操作,以免触发木马程序。 建议使用360压缩软件进行…...

鸿蒙低代码开发一个高频问题

在版本是DevEco Studio 3.1.1 Release&#xff0c;SDK是3.1.0(API9)。 创建和设计的visual文件经常会遇到无法渲染的情况&#xff0c;或者自定义组件在Custom列表中突然不见了的情况。 有以下报错信息的&#xff1a; JSON schema validation error: data/visualModel/value/…...

OpenClaw+Qwen3.5-9B组合创新:AI绘画描述词自动优化与批量生成

OpenClawQwen3.5-9B组合创新&#xff1a;AI绘画描述词自动优化与批量生成 1. 为什么需要AI绘画描述词优化 去年我开始尝试用Stable Diffusion进行艺术创作时&#xff0c;最头疼的就是提示词&#xff08;prompt&#xff09;的编写。每次都要反复调整形容词、风格修饰词、艺术家…...

CosyVoice模型怎么选?300M、0.5B、SFT、Instruct版本差异与实战效果对比

CosyVoice模型选型指南&#xff1a;从参数规模到微调版本的深度解析 当你成功安装CosyVoice后&#xff0c;打开pretrained_models目录可能会被琳琅满目的模型文件搞得一头雾水——300M、0.5B、SFT、Instruct这些后缀究竟意味着什么&#xff1f;作为一款新兴的开源语音合成系统&…...

nli-distilroberta-base零基础上手:无需NLP背景,5个示例掌握句子对逻辑判断

nli-distilroberta-base零基础上手&#xff1a;无需NLP背景&#xff0c;5个示例掌握句子对逻辑判断 1. 项目介绍 nli-distilroberta-base是一个基于DistilRoBERTa模型的自然语言推理(NLI)服务&#xff0c;专门用于分析两个句子之间的逻辑关系。即使你完全没有NLP背景&#xf…...

卡梅德生物技术快报|高亲和力 VHH 抗体的快速筛选:磁珠直接偶联液相法的技术实现

摘要针对传统方法难以实现高亲和力 VHH 抗体的快速筛选这一行业痛点&#xff0c;本文阐述了基于磁珠直接偶联的液相筛选法在高亲和力 VHH 抗体的快速筛选中的技术原理、核心实验步骤及应用优势。该方法通过碳化二亚胺法实现半抗原与磁珠的直接共价偶联&#xff0c;消除载体蛋白…...

ACE-Guard资源限制器完整教程:彻底解决腾讯游戏卡顿问题

ACE-Guard资源限制器完整教程&#xff1a;彻底解决腾讯游戏卡顿问题 【免费下载链接】sguard_limit 限制ACE-Guard Client EXE占用系统资源&#xff0c;支持各种腾讯游戏 项目地址: https://gitcode.com/gh_mirrors/sg/sguard_limit 你是否在玩《地下城与勇士》、《英雄…...

康威生命游戏中的简易CPU设计与实现

生命游戏中的简易CPU - 第4部分 这是关于在生命游戏中创建数字逻辑门系列文章的第四篇。前几篇文章从如何创建数字逻辑门开始&#xff0c;并利用它们来构建简单的电路。在这篇文章中&#xff0c;我们将实际构建第一台真正的计算机&#xff1a;一个&#xff08;2级流水线&#x…...

Kimi/豆包/DeepSeek生成的论文怎么降AI率?不同AI工具降AIGC策略详解

Kimi/豆包/DeepSeek生成的论文怎么降AI率&#xff1f;不同AI工具降AIGC策略详解 2026年初&#xff0c;一个新现象引起了高校老师们的注意&#xff1a;同一个班级的毕业论文&#xff0c;虽然题目各不相同&#xff0c;但读起来总有一种微妙的"相似感"。有些论文像是同一…...

无穷的奥秘 | 康托尔集合论与无穷算术

注&#xff1a;英文引文&#xff0c;机翻未校。 如有内容异常&#xff0c;请看原文。 Unraveling the Mysteries of Infinity 揭开无穷的奥秘 Jimmie Lawson 吉米劳森 Louisiana State University 路易斯安那州立大学 Infinity – p. 无穷 —— 第 页 Thinking about the …...

云边端一体化核心技术:数据同步与边缘智能实现

云边端一体化核心技术&#xff1a;数据同步与边缘智能实现&#x1f4da; 本章学习目标&#xff1a;深入理解数据同步与边缘智能实现的核心概念与实践方法&#xff0c;掌握关键技术要点&#xff0c;了解实际应用场景与最佳实践。本文属于《云原生、云边端一体化与算力基建&#…...

告别闪烁!用C语言数学函数实现超平滑LED呼吸灯(附Arduino/STM32代码)

用数学之美打造丝滑LED呼吸灯&#xff1a;从原理到代码实战 呼吸灯作为嵌入式开发的"Hello World"&#xff0c;看似简单却暗藏玄机。传统线性PWM调光常出现亮度突变、过渡生硬的问题&#xff0c;就像楼梯台阶般让人不适。本文将带你用数学函数破解这一难题&#xff0…...