Python教程:第9篇 字符串基本操作
bigegpt 2024-10-10 04:35 121 浏览
第6篇介绍了如何在Python中表示字符串,本文介绍字符串常用的基本操作。
连接字符串
可以使用+(加号)连接两个字符串,返回两个字符串连接后的字符串。下面是个实例:
+可以无限重复添加:
在Python中,+还可以用于两个数值的相加(在之后的数值篇章中会介绍),但是不能将字符串与数值相加,下面的示例出错了:
在某些脚本语言中,比如JavaScript,这样的语法是合法的,下面是JavaScript正常运行的实例:
注意,不能使用-减去字符串的一部分,没有这种语法:
字符串重复
可以使用*(星号,在Python中也表示数值的乘法运算)重复指定次数的字符串。 下面是个实例:
同样*也可以无限重复,不过这种功能并不常用。下面是个示例:
另外*也可用于数值的乘法运算。
注意,字符串不支持除法系列符号做为重复的逆运算,(/是除法,//是整除运算符),比如你不能使用'aa'/2得到'a',下面是个示例:
获取字符串的长度
len函数可以返回字符串的长度,以下是个示例:
一个英文字母、数字、标点,及一个汉字的长度均为1:
两个单独的引号表示的空字符串的长度为0:
len函数的返回值是int类型:
取字符串中的某个字符
字符串后面跟着中括号[](称为索引运算符)包围的索引值,可以返回指定索引的单个字符,需要注意的是,索引从0开始,即0表示第1个字符,1表示第2个字符,2表示第3个字符,以此类推,下面是一些简单的示例:
Python中每个汉字也只占用一个索引(有些语言的汉字占两个索引位置的)。
索引可以指定负数,-1表示最后一个,-2表示倒数第2个,依此前推。下面是几个示例:
取两个索引之间的字符串
字符串后面跟着的中括号中使用冒号分隔的两个索引值,可以返回两个索引之间的字符串。先看一个简单的示例:
它返回开始索引1(包括开始索引)到结束索引4(不包括结束索引)之间的字符串。
这种运算符称为切片运算符,其对字符串的使用通用格式如下:
其中:
1、其中字符串可以是str类型的字面量、常量、变量。
2、起始索引和结束索引都是索引,其类型均为int,表示字符的位置,从0开始计数,表示第1个字符位置,支持负数,-1表示倒数第一个,以此类推。
3、截取返回的字符串包含起始索引表示的字符,但不包括结束索引表示的字符。
4、起始索引与结束索引均可省略,省略时,从第1个字符开始截取,结束索引省略时,截取到最后一个字符(包括最后一个字符)。不过冒号不能省略,即[:]返回原来的字符串。
索引都是整数,如果提供小数,会产生语法错误:
起始索引和结束索引是独立的,都可以设置成负数,也可单独设置成负数:
在使用负值索引的时候,需要确保起始索引位置在结束索引位置的前面,如果起始索引表示的位置在结束索引的后面,返回空字符串,这是使用负值索引时最容易犯的错误:
去掉字符串后面或前面的指定数量的字符
可以使用切片操作实现这种功能。
去掉最后一个字符:
去掉第一个字符:
去掉后面多个字符,负几就表示去掉几个:
去掉前面多个字符,几就表示去掉几个:
翻转字符串
字符串后缀[::-1]可以实现翻转操作:
高级切片操作
上面应用到的翻转字符串的功能中,中括号中包含两个冒号(也是切片操作符),其对字符串的完整应用形式如下:
其可以实现更强大的字符串操作功能,当然理解并使用它也更为困难。
此运算符中前两个参数的取值与含义与只有一个冒号的运算符[:]中的相同位置的参数是相同的。不同的是步长,表示对操作数进行截取之后再依次按步长排序。其含义如下:
1、如果是正数,表示取第1个成员之后,再取往后数第几个。比如2表示先取第1个,再取第3(1+2)个,再取第5(3+2)个,依次累加类推,直到操作数末尾。下面是个示例:
2、如果是负数,表示从尾部开始计算,取倒数第1个成员之后,再按步进取下一个成员,直到操作数开头。比如-1表示将操作数倒转过来,-2隔1个取一个:
3、如果是0,则会产生语法错误。
需要注意的事,切片操作运算符不仅可以操作字符串,也能操作列表、元组,但这是运算符篇章需要介绍的内容,目前了解如何使用它处理字符串即可。
判断字符串中是否含有指定子字符串
成员操作符 in 可以判断字符串中是否包含指定的子字符串。下面是个示例:
字符串赋值
在本文中,关于字符串的操作大都使用字符串字面量表示,如果一个字符串要多次用到,最好将其赋值于变量,然后使用变量名来处理字符串。将字符串赋值于变量的语法如下:
变量 = 字符串
其中变量是用户自已命名的标识符,在变量篇中会详细介绍变量相关内容。
赋值变量后,就可以使用变量操作字符串了,下面是个示例:
判断两个字符串是否相等
两个=可以用于判断两个字符串是否相等。下面是个示例:
如果相等,返回True,不等返回False,这种表达式一般用作条件判断。
遍历字符串中的每个字符
使用for……in可以遍历字符串中的每个字符。下面是个示例:
其遍历for语句的通用格式如下:
for 变量 in 字符串:
在for语句内部,可以使用变量来引用字符串中的每个字符。
结语
囿于篇幅限制,本文就到此为止了,关于字符串的操作的内容还有很多,比如查找、替换、转换大小写、去除空白、分割成数组等等。由于这些功能都需要使用字符串对象的方法,所以我将其归类于“字符串对象操作”,将在下一篇中发布,敬请期待。
另外字符串还有正则表达式等高级功能,在以后的教程中也会详细介绍。
关联前文
相关推荐
- Redis集群对比:主从复制、哨兵模式、Cluster一文看懂所有优缺点
-
在分布式系统中,Redis作为高性能的内存数据库,其集群方案的选择直接影响到系统的稳定性、可用性和扩展性。本文将全面对比Redis的三种主流集群方案:主从复制、哨兵模式和Cluster模式,帮助开发者...
- redis的主从复制,读写分离,主从切换
-
当数据量变得庞大的时候,读写分离还是很有必要的。同时避免一个redis服务宕机,导致应用宕机的情况,我们启用sentinel(哨兵)服务,实现主从切换的功能。redis提供了一个master,多个sl...
- # Redis 入门到精通(九)-- 主从复制(3)
-
#Redis入门到精通(九)--主从复制(3)##一、redis主从复制-常见问题(1)###1、伴随着redis系统的运行,master的数据量会越来越大,一旦master重启...
- redis - 主从复制(Redis主从复制时序图)
-
1引言在上一篇文章中,我们了解了Redis两种不同的持久化方式,Redis服务器通过持久化,把Redis内存中持久化到硬盘当中,当Redis宕机时,我们重启Redis服务器时,可以由RDB文件或AO...
- # Redis 入门到精通(九)-- 主从复制(2)
-
#Redis入门到精通(九)--主从复制(2)##一、redis主从复制--数据同步阶段注意事项###1、数据同步阶段master说明1)如果master数据量巨大,数据同步阶段应...
- Redis主从复制(redis主从复制主节点挂了)
-
介绍Redis有两种不同的持久化方式,Redis服务器通过持久化,把Redis内存中持久化到硬盘当中,当Redis宕机时,我们重启Redis服务器时,可以由RDB文件或AOF文件恢复内存中的数据。不过...
- 深入解析 Redis 集群的主从复制实现方式
-
在互联网大厂的后端开发领域,Redis作为一款高性能的内存数据库,被广泛应用于缓存、消息队列等场景。而Redis集群中的主从复制机制,更是保障数据安全、实现读写分离以及提升系统性能的关键所在。今...
- Redis主从架构详解(redis主从架构高可用如何实现)
-
Redis主从架构搭建Redis主节点配置创建主节点目录(/opt/redis-master),复制redis.conf到该目录下,redis.conf配置项修改#后台启动daemonizeyes...
- 抖音“四大包塘战神”:承包了全网的快乐
-
在抖音钓鱼垂类领域,"包塘战神"军团正掀起一场黑色幽默风暴。空军华、大表坑、李赔光、透心良四位创作者,以承包鱼塘为舞台,用连续翻车的钓鱼直播构筑起流量奇观。当钓鱼佬在抖音集体转型喜剧人...
- ORACLE 11G RAC 安装-通过VM配置共享磁盘
-
简介:在自己的电脑上通过VM软件搭建Oracle11GRAC,通过修改VM的参数文件来实现磁盘共享!目标:搭建RAC环境实现:使用VMwareWorkstation8.0.0+ORACLE...
- Linux操作系统安全配置(linux系统安全配置包括)
-
一、服务相关命令systemctlenable服务名#开机自启动systemctldisable服务名#禁用开机自启动systemctlstop服务名#停止服务systemctls...
- 关于Linux性能调优中网络I/O的一些笔记
-
写在前面和小伙伴分享一些Linux网络优化的笔记,内容很浅,可以用作入门博文内容结合《Linux性能优化》读书笔记整理涉及内容包括常用的优化工具(mii-tool,ethtool,ifconfig,i...
- 从 Sonatype Nexus Repository Manager 迁移到 Artifactory
-
1.Nexus1.1下载下载链接:https://help.sonatype.com/repomanager3/product-information/download/download-archiv...
- Ubuntu20安装zabbix5.0企业监控系统亲测教程
-
前言示例主机:zabbix10.0.100.10,将安装在UbuntuServer上教程说明:因使用官方教程无法安装成功,所以本教程与官方教程有所不同安装前提:已安装UbuntuServer2...
- Linux内核设计与实现—进程管理(linux内核程序设计)
-
进程进程就是处于执行期的程序(目标码存放在某种存储介质上)。进并不仅仅局限于一段可执行程序代码(Unix称其为代码段,textsection)。通常进程还要包含其他资源,像打开的文件,挂起的信号,...
- 一周热门
- 最近发表
- 标签列表
-
- mybatiscollection (79)
- mqtt服务器 (88)
- keyerror (78)
- c#map (65)
- xftp6 (83)
- bt搜索 (75)
- c#var (76)
- xcode-select (66)
- mysql授权 (74)
- 下载测试 (70)
- linuxlink (65)
- pythonwget (67)
- androidinclude (65)
- libcrypto.so (74)
- linux安装minio (74)
- ubuntuunzip (67)
- vscode使用技巧 (83)
- secure-file-priv (67)
- vue阻止冒泡 (67)
- jquery跨域 (68)
- php写入文件 (73)
- kafkatools (66)
- mysql导出数据库 (66)
- jquery鼠标移入移出 (71)
- 取小数点后两位的函数 (73)