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 编译ÿ…...
计算机视觉中的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 这题需要考虑两种情况: 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怎么配置环境变量:深度探索与实战指南 在Python编程的世界中,环境变量的配置是一个至关重要的步骤。它不仅影响着Python解释器的运行,还关系到各种第三方库和工具的使用。本文将带你深度探索如何配置Python的环境变量,并为…...
计网期末复习指南(六):应用层(DNS、FTP、URL、HTTP、SMTP、POP3)
前言:本系列文章旨在通过TCP/IP协议簇自下而上的梳理大致的知识点,从计算机网络体系结构出发到应用层,每一个协议层通过一篇文章进行总结,本系列正在持续更新中... 计网期末复习指南(一):计算…...
HTML做成一个炫酷跳动爱心的页面
大家好,今天制作制作一个炫酷跳动爱心的页面! 先看具体效果: 要创建一个炫酷跳动爱心的HTML页面,你可以使用HTML、CSS和JavaScript的组合。以下是一个简单的示例,它使用CSS动画和JavaScript来实现跳动效果。 首先&…...
React + SpringBoot实现图片预览和视频在线播放,其中视频实现切片保存和分段播放
图片预览和视频在线播放 需求描述 实现播放视频的需求时,往往是前端直接加载一个mp4文件,这样做法在遇到视频文件较大时,容易造成卡顿,不能及时加载出来。我们可以将视频进行切片,然后分段加载。播放一点加载一点&am…...
Suse Linux ssh配置免密后仍需要输入密码
【问题描述】 Suse Linux已经配置了ssh免密,但无法ssh到目标服务器。 对自身的ssh登陆也需要输入密码。 系统–Suse 15 SP5 【重现步骤】 1.使用ssh-keygen -t rsa生产key文件 2.使用ssh-copy-id拷贝public key到目标机器(或者自身) 3.配置成功后ssh 目标时仍需要输…...
apifox 生成签名
目录 前言准备编写签名脚本签名说明捋清思路编码获取签名所需的参数生成签名将签名放到合适的位置完整代码 在apifox中配置脚本新增公共脚本引用公共脚本添加环境变量 参考 前言 略 准备 查看apifox提供的最佳实践文章:接口签名如何处理 编写签名脚本 签名说明…...
介绍建造者模式
建造者模式 将一个复杂对象的创建与它的表示分离,使得同样的构建过程可以创建不同的表示 四种角色 Product 产品角色 指的是一个具体的产品对象Builder 抽象建造者 创建一个产品对象的各个部件的接口/抽象类ConcreteBuilder 具体建造者 实现或继承抽象建造者接口…...
【全部更新完毕】2024全国大学生数据统计与分析竞赛B题思路代码文章教学数学建模-电信银行卡诈骗的数据分析
电信银行卡诈骗的数据分析 摘要 电信银行卡诈骗是当前社会中严重的犯罪问题,分析电信银行卡交易数据,找出高风险交易特征,建立预测模型,将有助于公安部门和金融机构更好地防范诈骗行为,保障用户的财产安全。 针对问…...
【应用浅谈】Odoo的库存计价与产品成本(三)
序言:时间是我们最宝贵的财富,珍惜手上的每个时分 Odoo的库存(Stock)模块拥有众多功能,其中库存计价是一项非常重要的功能,原生的成本方法分三种:【标准成本】,【平均成本】,【先进先出】&#…...
数据结构之ArrayList与顺序表(下)
找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏:数据结构(Java版) 目录 ArrayList的具体使用 118. 杨辉三角 扑克洗牌算法 接上篇:数据结构之ArrayLis…...
openi启智社区 aarch64 npu环境安装飞桨paddlepaddle和PaddleNLP(失败)
以前在启智社区都是编译安装飞桨,这回看到飞桨提供了npu安装包,兴冲冲的以为安装很简单。 之所以安装飞桨,是因为想在启智社区的启智大脑调试环境使用最新的PaddleNLP,结果报错:No module named paddle.nn.layer.laye…...
【漏洞复现】多客圈子论坛系统 httpGet 任意文件读取漏洞
0x01 产品简介 多客圈子论坛系统是一种面向特定人群或特定话题的社交网络,它提供了用户之间交流、分享、讨论的平台。在这个系统中,用户可以创建、加入不同的圈子,圈子可以是基于兴趣、地域、职业等不同主题的。用户可以在圈子中发帖、评论、…...
46-1 护网溯源 - 钓鱼邮件溯源
一、客户提供钓鱼邮件样本 二、行为分析 三、样本分析 对钓鱼邮件中的木马程序1111.exe文件进行了分析,提交了360安全大脑沙箱云和微步在线云沙箱。 360安全大脑沙箱云显示,该1111.exe文件存在危险,因此在解压时需要谨慎操作,以免触发木马程序。 建议使用360压缩软件进行…...
鸿蒙低代码开发一个高频问题
在版本是DevEco Studio 3.1.1 Release,SDK是3.1.0(API9)。 创建和设计的visual文件经常会遇到无法渲染的情况,或者自定义组件在Custom列表中突然不见了的情况。 有以下报错信息的: JSON schema validation error: data/visualModel/value/…...
关于使用南墙waf防护halo网站主页请求404报错的解决方案
文章目录 环境说明问题展示原因探究解决方法 环境说明 在1panel应用商店,部署南墙waf(docker版)halo(2.16.1社区版)注意部署过程中注意uuwaf必须勾选允许外部访问,halo可以不勾选[这里为了证明确实是南墙waf的原因,选择勾选] 问题展示 使…...
Elasticsearch 认证模拟题 - 13
一、题目 集群中有索引 task3,用 oa、OA、Oa、oA 查询结构是 4 条,使用 dingding 的查询结果是 1 条。通过 reindex 索引 task3 为 task3_new,能够使 task3_new 满足以下查询条件。 使用 oa、OA、Oa、oA、0A、dingding 查询都能够返回 6 条…...
Day25 首页待办事项及备忘录添加功能
本章节,完成首页待办事项及备忘录添加功能 一.修改待办事项和备忘录逻辑处理类,即AddMemoViewModel和AddTodoViewModel 在 AddMemoViewModel逻辑处理类中,为了支持与其关联的View视图文件的数据绑定,需要定义一个与视图文件相匹配的实体类 Model。这个Model将包含 View中…...
SpringBoot——全局异常处理
目录 异常 项目总结 新建一个SpringBoot项目 pom.xml Result(通用的响应结果类) MyBusinessException自定义异常类 GlobalExceptionHandler全局异常处理类 ExceptionController控制器 SpringbootExceptionApplication启动类 参考文章:…...
SpringBoot+Vue教师工作量管理系统(前后端分离)
技术栈 JavaSpringBootMavenMySQLMyBatisVueShiroElement-UI 角色对应功能 教师管理员 功能截图...
华为OD技术面试-最长回文串-2024手撕代码真题
题目:最长回文串 给定一个包含大写字母和小写字母的字符串 s ,返回 通过这些字母构造成的 最长的 回文串 的长度。 在构造过程中,请注意 区分大小写 。比如 "Aa" 不能当做一个回文字符串。 示例 1: 输入:s = "abccccdd" 输出:7 解释: 我们可以构造的最…...
Python实现连连看8
4 游戏开始 连连看游戏实际上主要完成的是对玩家鼠标点击事件的处理,也就是对鼠标点击事件的响应。 4.1 添加鼠标点击事件响应 在“1.3.4 在窗口上铺设画布”中提到的将画布pack()到窗口代码之前,写入如下代码,其功能是为鼠标点击事件添加响应。 canvas.bind(<Button…...
[Cloud Networking] Layer Protocol (continue)
文章目录 1. STP / RSTP / MSTP Protocol1.1 STP的作用1.2 STP 生成树算法的三个步骤1.3 STP缺点 2. ARP Protocol3. DHCP Protocol3.1 DHCP 三种分配方式3.2 DHCP 攻击 4. IPSEC / MACSEC 1. STP / RSTP / MSTP Protocol 1.1 STP的作用 消除二层环路:通过阻断冗余…...
人工智能在交通与物流领域的普及及应用
文章目录 🐋引言 🐋自动驾驶 🦈自动驾驶汽车 🐡应用现状 🐡技术实现 🐡实现过程及代码 🐋智能交通管理 🦈应用现状 🦈技术实现 🦈实现过程及代码 &…...
JVM学习-详解类加载器(二)
双亲委派机制 双亲委派优势 避免类的重复加载,确保一个类的全局唯一性 Java类随着它的类加载器一起具备了一种带有优先级的层次关系,通过这种层次关系可以避免类的重复加载,当父类已经加载了该类,就没有必要子ClassLoader再加载…...
网站后台安装/新闻发稿平台有哪些?
之前英雄联盟手游内测,需要申请资格,不少小伙伴运气不太好,没有获得体验资格,现在终于等来了正式公测。目前安卓/iOS在 28 日开启公测的地区有:日本、韩国、泰国、越南、菲律宾、马来西亚、新加坡。12月首周公测地区:欧…...
wordpress 目录页/淘宝推广公司
前言 本文介绍银河麒麟桌面操作系统V10上安装部署netbeans集成开发环境,并导入从spring官方生成的一个springboot项目进行常规开发调试工作 一、系统信息 1、操作系统版本 右键点击任务栏,选择“关于银河麒麟”,弹出系统信息框 终端下查看…...
东台建设局官方网站/发布外链
美国福禄克公司 汤怀京2009年是一个风云变幻的一年,2008年下半年发生的全球性经济危机对网络行业带来了强烈的冲击,2009年上半年大多数业界的公司都在默默的耕耘着,随着下半年国内经济开始复苏,网络的新技术也在各种应用大环境下…...
自己做网站怎么选架构/威海seo优化公司
原标题:一起来捉妖:在线6小时被劝退?只需网络断开,跳过等待15分钟一起来捉妖这款游戏刚出来的时候就凭借着新颖的玩法吸引了大部分玩家的驻足,而且这个游戏也是让玩家们完全停不下手,不过之卿由于已经成年所…...
厦门市翔安建设局网站/网站统计分析平台
DNS 配置篇二一、子域配置1、基本概念子域的作用是在本地DNS下再划分一个小的(子)DNS。作用的方便集中管理,不过问题是要配置转发。父DNS可以知道解析子DNS,子DNS 则只可以解析自己本地记录,不能解析父DNS。正向子域授…...
网站设计 线框图/网站广告费一般多少钱
一、配置文件 spring配置文件可以通过如下例子进行拆分使配置文件只在某一种环境下适用。任何Component or Configuration被Profile修饰的都会在加载的时候被限制,比如下面的例子: Configuration Profile("production") public class Producti…...