首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

零基础学习 Python 之字符串

写在之前

大家好,这里是零基础学习 Python 系列,在这里我将从最基本的Python 写起,然后再慢慢涉及到高阶以及具体应用方面。我是完全自学的 Python,所以很是明白自学对于一个人的考验,所以在这里我会尽我最大的努力,把 Python 尽可能简单的表述清楚,让更多想要学习 Python 的朋友能够入门。同时写这个教程也算是对自己之前所学知识的一个巩固和提高,喜欢的朋友们可以点个关注,有问题欢迎随时和我交流。

再者本文所有的代码编写用的都是 Python3 版本,还有昨天的文章里有几处错别字,还有两三个有点错误的地方已经改正,谢谢昨天球友 「敲代码的火车修理工」 给提的建议,很感激。

初识字符串

维基百科对于字符串的定义式:字符串是由零个或者多个字符组成的有限串行。你之前学会敲的第一行 print 代码里的 “Hello World”,就是一个字符串。字符串的本质就是一串字符,不管是中文还是英文抑或是空格等特殊字符都可以作为字符串来看待。

在 Python 里,字符串和上一篇文章(

零基础学习 Python 之数字与运算

)里讲到的数字一样,都是一种对象类型,字符串类型用 str 表示,用英文的单引号或双引号括起来。

>>>'good good study'

'good good study'

>>>"day day up"

'day day up'

字符串与变量

上面我说到字符串和数字都是一种对象类型,那么在上篇文章中我们说数字可以有变量指向它,那么字符串当然也可以。

>>> string ='Hello World'

>>> string

'Hello World'

>>>print(string)

Hello World

字符串连接

如果我有两个字符串,分别是 'Hello' 和 'World',那么我想得到 'Hello World' 那可咋整?别怕,Python 里提供了特别简单的办法,那就是相加,就是你们知道的那个加减乘除的那个加。

>>> a ='Hello'

>>> b ='World'

>>> a + b

'HelloWorld'

>>> a +' '+ b

'Hello World'

但是相加只是限同种类型的,比如字符串和字符串相加,数字和数字相加,字符串和数字不可以,会报错。

这里再多说一点,字符串其实还可以乘,看下面的例子就知道怎么用了:

>>> string ='Python'

>>> string *3

'PythonPythonPython'

就至此为止了,减和除你们就不用想了。

Python 转义字符

什么时候能用到转义字符呢?下面我们看一个例子:

>>>'what's your name'

File "", line 1

'what's your name'

^

SyntaxError:invalid syntax

为什么会报错呢?眼尖的朋友们可能已经看出来了,字符串里有三个单引号,这样解释器就尴尬了,不知道单引号包裹的到底是谁,所以只好报错了。那么有什么解决办法呢?一种是用 双引号包裹整个字符串,另一个就是要用到我们接下来要说的转义字符了。

>>>"what's your name"

"what's your name"

>>>'what\'s your name'

"what's your name"

下面给大家放一张常用转义字符的图片,感兴趣的朋友们可以去试试,在交互环境中都是可操作的。

原始字符串

原始字符串就是字符串里的每个字母都是自己原汁原味的,我们 \n 就是 \n ,不是换行符。一种方法就是用上述的转译字符,此外在这还有一种方法,就是在字符串前面加个 r:

>>>string ="c:\now"

>>>print(string)

c:

ow

>>>print(r'c:\now')

c:\now

索引 & 切片

我们在本篇文章刚开始的时候字符串由多个字符构成,那么在 Python 中如何操作每个字符,这里就用到索引和切片。

索引的话其实是起的一个比较高端的名字,其实就是编号,就像考完试的名次一样,这个不是 Python 所特有的,其他的编程语言也是这么叫。

>>> string ='I love Python'

>>> string[]

'I'

>>> string[5]

'e'

要想得到第一个字符,就用 string[0],以后依次类推,它和我们现实中的排名不同的是,它是从 0 开始的,你还记得么?空格等特殊的也是字符,所以它们也是有编号的,这是正向的表示,在 Python 中,字符串的索引还可以倒着表示,从最后一个开始 分别是 -1,-2,-3.....

然后人总是不满足的,我可以通过索引一个一个的找出字符来,那我想找其中的一个子串怎么办?这时候我们的切片就闪亮登场了。如果我想得到 love 这个子串怎么办?具体的操作请见下面的例子:

>>> string ='I love Python'

>>> string[2:6]

'love'

因为 l 的索引是 2,e 的索引是5,所以我们可以看出来切片的作用区间是左闭右开的,即[2, 6)。这里还有一点要说的是,字符串的切片对原字符串没有影响,不会改变它。

切片还有很多有意思的操作,可以切的多姿多彩:

>>> string ='I love Python'

>>> a = string[3:]#得到从3号到最后的字符串

>>> a

'ove Python'

>>> b = string[:8]#得到从第1个字符到第7个字符

>>> b

'I love P'

>>> c = string[:]#得到所有的字符

>>> c

'I love Python'

是不是觉得很有意思呢?切片的写法还有很多,比如如果是倒序的话我该怎么在切片里表示?有兴趣的可以自己去尝试。

字符串格式化输出

Python 中的格式化和我们所熟知的对磁盘中的分区进行初始化是不一样的概念,我们这里说的是对字符串的格式化,所谓字符串的格式化就是我们先定义一个模板,然后在这个模板的一处或者几处地方留出空位来,然后在那些空位上填上符合设定条件的字符串,并显示结果,这些留出来的空位我们称为占位符。下面我用具体的例子来说明。

>>>'I love %s'#这里的 %s 就是一个占位符

'I love %s'

>>>'I love %s'%'Python'

'I love Python'

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

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

常用的字符串方法

字符串里的方法有很多,可以通过 dir(str)查看,这么多的方法我不会在这一一介绍,如果想使用的话,可以使用 help() 查看,这里仅仅列举几个常用的。

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():去掉字符串左右两边的空白字符。

我这里就随便演示了前三个,当然字符串的方法不只这些,这些函数在交互模式里很好实现,如果没事的话可以随时看几个,在交互模式里按照我上面的样子自己动手试试,这样在用到某个方法的时候才能想起来有,否则的话再自己去写很多代码去实现本身就存在的方法,很是浪费时间。

写在最后

感谢你能看到这里,希望我写的东西能够让你有到收获,但是我还是希望我在文章里插入的代码,你们能自己动手试一下,都很简单。原创不易,每一个字,每一个标点都是自己手敲的,每次基本都要花三四个小时的时间去做这件事,初心是为了分享,所以希望大家能多给点支持,该关注关注,该点赞点赞,该转发转发,有什么问题欢迎在后台联系我,也可以在公众号找到我的微信加我。

The end。

希望大家能够多多关注我

扫一扫下方的二维码

把我带回家,嘤嘤嘤…

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180711A09YFG00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券