Python 中的字符串,是门大学问。

Posted 燕山588

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 中的字符串,是门大学问。相关的知识,希望对你有一定的参考价值。

大家好,我是 梦想。

这篇文章轮到数据类型中另一重磅 - 字符串(String)。

话不多说,直接开始,内容有点多,要慢慢食用。

认识字符串

字符串官方的说法是:

字符串是由零个或者多个字符组成的有限串。

看着说的挺洋气的,说白了就是一堆的字符。我们和编程爱情的开始“Hello World” 就是一个字符串。

字符串不止有字母,不管是中文还是英文或者空格等特殊字符都可以作为字符串来看待。

在 Python 中,字符串类型用 str 表示,用英文的单引号或双引号括起来。

上篇文章中讲过,数字可以有变量指向它,作为和数字类型一样,同属于数据类型的字符串当然也可以。

字符串连接

如果我有两个字符串,分别是 ‘Hello’ 和 ‘World’,那么我想得到 ‘Hello World’ 要怎么做呢?

这里用到字符串的连接。

Python 里提供了特别简单的办法,那就是相加,就是加减乘除的那个加。

不过这也是有限制的:相加的只能是同种类型的。比如字符串和字符串相加、数字和数字相加。

这里再多补充一点,字符串除了加以外,还可以用乘。

至于减和除,没有。

转义&不转义字符

转义字符

福利:私信回复【01】可免费获取python入门教程视频

首先我们先来看一个例子:

输出结果报错,为啥呢?

这是因为第一行字符串里有三个单引号,解释器懵圈了,不知道哪两个单引号是一对,只好报个错装死。

出现这种问题咋解决呢?有两种解决办法。

第一种:用双引号包裹整个字符串。

第二种:就是用标题里所说的“转义字符”。

上面加了个反斜杠就解决了问题,’’‘ 意思就是单引号的意思。

那通过上面,我们知道转义字符 是不采用符号本身的含义,而采用的是一种规定好的含义。

下面是图中是常用的转义字符。

转义字符好用,但是对于那些失去了自身意义的字符来说,也挺惨,都没法当自己。

那它们怎么才能当自己呢?那就是想办法当个不转义字符。最后,如果你的时间不是很紧张,并且又想快速的提高,最重要的是不怕吃苦,建议你可以价位@762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~

不转义字符

为了迎合上个标题,将这个标题取为不转义字符有点不恰当,更恰当的应该是当自己 - 原始字符。

在上面常用的转义字符中,’\\n’ 是换行的意思。

人家 ‘\\n’ 就只想当 ‘\\n’,不想当换行,咋整?

简单,在 Python 的串串前面,加个 ‘r’ 字母:

操作字符串

在 Python 中,操作字符串常用两种,第一种是索引+切片,第二种是字符串函数。

索引 + 切片

首先来说索引。

索引看起来洋气的名字,说白了就是编号,就像考试有名次一样,这个是所有编程语言都有的。

Python 中的索引和现实中的排名稍微区别点的是,它是从 0 开始的。要想得到第一个字符,就用 string[0],以后依次类推。

还记得我上面说过的空格等特殊的也是字符,所以它们也是有编号的,这是正向的表示。

在 Python 中,字符串的索引还可以倒着表示,从最后一个开始 分别是 -1,-2,-3,…

通过索引可以一个一个的索出字符,那我想找其中的一个子串怎么办?

这时候我们的切片就闪亮登场了,直接切!

我想要 love 这个子串:

在 Python 中,切片的作用区间是是左闭右开的,string 字符串中,l 的索引是 2,e 的索引是 5,所以想切出 love 子串,需要 string[2:6],即[2, 6)。

这里还有一点要说的是,字符串的切片对原字符串没有影响,不会改变它

除了这个以外,切片的操作还有很多姿势,可以切的多姿多彩。

当然,上面这些只是其中的一点点,更多切片解锁自己去摸索一下,成就感的不要不要的。

字符串函数

字符串里的方法有很多,这里仅仅列举几个常用的。

find()

检测字符串是否包含特定字符,如果包含,则返回开始的索引;否则,返回-1。

index()

检测字符串是否包含指定字符,如果包含,则返回开始的索引值,否则,提示错误。

count(str1,start,end)

返回str1在string中指定索引范围内[start, end)出现的次数。

replace(str1,count)

将str1中的str1替换成str2,如果指定count,则不超过count次。

split(‘分界符’,maxsplit)

maxSplit默认值为-1,表示根据定界符分割所有能分割的,返回值为列表,如果 maxsplit有指定值,则仅分割 maxsplit 个子字符串。

strip()

去掉字符串左右两边的空白字符。

我这里就随便写了前三个,当然字符串的方法不只这些,可以通过 dir(str) 查看。

这些函数在交互模式里很好实现,具体想使用哪个,可以用 help() 函数查看,比如查看 split() 函数。

如果没事的话可以随时看几个。

在交互模式里按照我上面的样子自己动手试试,这样在用到某个方法的时候才能想起来有,否则的话再自己去写很多代码去实现本身就存在的方法,很是浪费时间。最后,如果你的时间不是很紧张,并且又想快速的提高,最重要的是不怕吃苦,建议你可以价位@762459510 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~

字符串输出

操作字符串必然伴随着字符串的输出。

在实际项目中,对于字符串的输出肯定不是随随便便,必然模板式的输出,这就涉及到了字符串的格式化。

字符串的格式化是先定义一个模板,然后在这个模板的一处或者几处地方留出空位来,然后在那些空位上填上符合设定条件的字符串,并显示结果。

我们来看一个例子:

上面的 ‘%s’ 就是我说的空位,专业术语叫占位符

这种方法是原先很常用的一种方法,现在用的更多的是 format() 方法,下面我来展示具体的用法:

在 format 里面 , 就成了占位符,然后不要忘了字符串和 format 中间那个很重要的英文句号。

以上是关于Python 中的字符串,是门大学问。的主要内容,如果未能解决你的问题,请参考以下文章

自学是门手艺

Python - 摆脱字符串中的空格

智慧树知到《Python语言应用(西安外国语大学)》2022章节测试答案

Python大学课本笔记

Python中的“字符串”和“字符串”有啥区别吗? [复制]

替换python字符串中的特殊字母[重复]