Python的字符串是一个有序序列,所以他可以和列表一样使用下标来访问元素,但是由于它是不可变类型,所以无法对字符串中的某个字符进行修改,下面介绍下字符串的基本操作。

Python中没有字符的概念,严格来讲,说字符是不准确的,字符串是由一个个字符串(字符)组成的,虽然听起来很别扭,但真的就是这样 - -!。

3.1.1 字符串的访问

字符串和列表是相似,都是顺序的线性结构,所以它可以被索引,也可以被遍历。字符串的索引类似数组的下标:

3.1.2 字符串的拼接

当我们需要把多个字符串连接在一起,那么就需要对字符串进行拼接,python提供了join方法,+号,以及*号,使我们方便的完成需求。

S.join(iterable) -> str  --> 使用s对可迭代对象进行拼接,返回拼接后的字符串。

join: S可以为任意字符,包括空。可迭代对象中的元素必须是字符串类型

+: 把两个字符串直接进行连接,返回一个新的字符串

*: 把字符串重复复制N次,返回一个新的字符串

3.2 字符串分割

字符串中有关于字符分割功能的主要有两类,split类和partition类,他们分别适用于不用的场景。但用的比较多的是split。

split类:将字符串按照分割符分隔成若干字符串,并返回列表

partition类:将字符串按照分割符分割成2段,返回这2段和分隔符组成的三元组

例子

当然split类还包含了其他两个方法:

partition类和split相似,还有个rpartition函数,也是从右开始截取,需要注意的是,当分隔符无法对字符切分时,返回的是空,空,字符串,组成的三元组。

3.3 字符串大小写

upper:将字符串转换为大写字母

lower:将字符串转换为

swapcase: 大小写对调

capitalize:转换成首字母大写的单词格式

title: 转换成每个单词首字母大写的标题模式

3.4 字符串排版

center(width [,fillchar]): 居中显示,参数width表示整体宽度,fillchar表示填充字符,默认填充字符为空

zfill(width):居右显示,参数width表示整体宽度,使用0进行填充

ljust(width [, fillchar]):左对齐,width表示整体宽度,fillchar表示填充字符

rjust(width [, fillchar]):右对齐,width表示整体宽度,fillchar表示填充字符

3.5 字符串修改

what?你前面说字符串是不可变的吧,为什么这里又说字符串的修改?你在逗我吗。呵呵哒。

S.replace(old, new[, count]) -> str  --> 对字符串S进行查找,将指定的old字符串转换为new字符串,count表示替换的次数,默认表示重复替换所有

S.strip([chars]) -> str --> 将字符串s进行处理,从字符串的两边删除掉匹配chars的字符串,chars可以是多个单字符,默认是所有空白字符(\n,\r\n,\r,\t等等都包含)

注意:replace的替换是生成一个新的字符串,而不是修改原字符串,这也是字符串修改的原理

3.6 字符串查找

我们有很多的时候要判断关键字是否存在一个字符串中,那么我们就需要在字符串中遍历查找,是否有匹配的字符串。python提供了find,rfind,index,count等函数用于完成需求

index和count方法由于是遍历查找,所以时间复杂度都是O(n),会随着字符串序列的数据规模的增大,而效率下降,如果没要在字符串中进行查找,还是建议使用find函数。

3.7 字符串判断

Python的字符串对象提供了两个函数,用于对字符串的起始位和结尾位来进行匹配,它们是startswith和endswith。

除了判断开始和结尾,Python的字符串还提供了部分函数,用来判断字符串内的元素类型,比如判断字符串是否是纯数字组成?是否是纯字母组成等,这些函数的返回值统一都为bool型,可以作为if语句的条件表达式。

3.8 字符串格式化

字符串格式化是我们需要重点掌握的东西,在早期的Python中使用的是C语言风格的字符串替换,使用起来比较难看,不符合python的风格(当然是我的猜测,哈哈)。后来Python推荐使用内置的format函数来对字符串进行格式化。

字符串格式化是一种拼接字符串输出样式的手段,更灵活方便,之前我们使用join和+来对字符串进行拼接。

join:只能使用分隔符,且要求被拼接的是可迭代对象且元素必须是来字符串类型

+: 使用起来比较方便,但是非字符串需要先转换为字符串才可以进行拼接。

3.8.1 C语言格式化

在Python 2.5版本以前,只能使用printf style风格的print输出,这种风格来自于C语言的printf函数,它有如下格式要求。(不建议使用,了解即可,Pythoner还是理解format就好。)

占位符:使用%和格式字符串组成,例如%s,%d等。使用s时,内部其实会调用str()函数进行转换

占位符中还可以插入修饰字符,例如%03d表示打印3个位置,不够的话,前面补0

format % value 格式字符串和被格式字符串之间使用%分割

values只能是一个对象,或是一个与格式字符串占位符数量相等的元组,或一个字典

3.8.2 format格式化

Python中推崇使用format函数来对字符串进行格式化。

‘{}{XXX}’.format(*args, **kwargs)  -> str  --> 函数的一般格式,{}表示占位符,使用format中的参数进行传递

format非常灵活,下面是基本使用方法说明:

args是可变的位置参数,是一个元组

kwargs是可变关键字参会苏,是一个字典

花括号表示占位符

{}表示按照顺序匹配位置参数,{n}表示取位置参数中索引为n的值

{xxx} 表示在关键字参数中搜索名称一致的值,kwargs必须放在位置参数的后面

{{}}表示打印花括号

3.8.3 对齐

当然字符串还提供了多种的对齐方式,便于我们对输出内容做一个简单的优化。

<:左对齐(默认)

:右对齐

^: 居中显示

对齐方式需要在占位符内使用:号进行分割

当填充符为数字的时候,可以与宽度写在一起,比如 {:0<5} --> {:<05} , {:0^5} --> {:^05}

3.8.9 小数点与进制

虽然用的不多,还是这里还是举例说明一下进制和小数的使用方法

d: 表示十进制

x: 表示十六进制

o: 表示八进制

b: 表示二进制

F: 表示浮点型

#: 表示添加进制前缀

*[1,2,3]: 表示把列表中的元素结构出来:*[1,2,3] --> 1,2,3

4 切片

说到切片那么不得不提线性结构,为什么?因为线性结构都可以进行切片操作,除了切片,线性结构其他的特点还有

(1)Python所有方向的学习路线(新版)

这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

最近我才对这些路线做了一下新的更新,知识体系更全面了。

在这里插入图片描述

(2)Python学习视频

包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。

在这里插入图片描述

(3)100多个练手项目

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。

在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里无偿获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。

在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里无偿获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐