大家好,我是 梦想。
这篇文章轮到数据类型中另一重磅 - 字符串(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 中间那个很重要的英文句号。