《Python语言程序设计》 —2.2.2 String

举报
华章计算机 发表于 2019/11/18 13:39:35 2019/11/18
【摘要】 本节书摘来自华章计算机《Python语言程序设计》一书中第2章,第2.2.2节,作者是王恺 王志 李涛 朱洪文。

2.2.2 String

Python语言中只有用于保存字符串的String类型,而没有用于保存单个字符的数据类型。Python中的字符串可以写在一对单引号中,也可以写在一对双引号或一对三双引号中,3种写法的区别将在后面章节中介绍,目前我们使用一对单引号或一对双引号的写法。

例如,对于下面的代码:

s1,s2='Hello World!',"你好,世界!"

执行完毕后,s1和s2的值分别是字符串“Hello World!”和“你好,世界!”。

提示 Python中提供了int函数和float函数,可以分别把一个字符串转成整数或浮点数。

int函数有两个参数:第一个参数是要转换为整数的字符串(要求必须是一个整数字符串,否则会报错),第二个参数是字符串中整数的数制(不指定则默认为10)。例如,int('35')返回整数35,int('35',8)返回整数29,int('35+1')则会因无法转换而报错。

float函数只有一个参数,即要转换为浮点数的字符串(要求必须是一个整数或浮点数字符串)。例如,float('35')返回浮点数35.0,float('35.5')返回浮点数35.5,float('35.5+3')则会因无法转换而报错。

这里需要特别注意int和float这两个函数与第1章所学习的eval函数的区别,int函数和float函数仅是将字符串中的数字直接转为整数或浮点数,不会做任何运算。当要转换的字符串是一个包含运算的表达式时,int函数和float函数会报错。

不包含任何字符的字符串,如“''”(一对单引号)或“""”(一对双引号)称为空字符串(或简称为空串)。

在字符串中,可以使用转义字符,常用的转义字符如表2-1所示。

表2-1 转义字符描述

image.png

 

例如,对于下面的代码:

1    s1='Hello \

2    World!' #上一行以\作为行尾,说明上一行与当前行是同一条语句

3    s2='It's a book.' #单引号非成对出现,报SyntaxError错误

4    s3='It\'s a book.' #使用\'说明其是字符串中的一个单引号字符

5    s4="It's a book." #使用一对双引号的写法,字符串中可以直接使用单引号,不需要转义

6    s5="你好!\n欢迎学习Python语言程序设计!" #通过\n换行

执行完毕后,使用print函数依次输出成功创建的各变量的值,则可以得到如下结果:s1输出“Hello World!”;s2没有创建成功,所以会报SyntaxError错误;s3和s4都输出“It’s a book.”;s5输出两行信息,第一行输出“你好!”,第二行输出“欢迎学习Python语言程序设计!”。

利用下标“[]”可以从字符串中截取一个子串,其语法格式如下:

s[beg:end]

其中,s为原始字符串,beg是要截取子串在s中的起始下标,end是要截取子串在s中的结束下标。省略beg,则表示从s的开始字符进行子串截取,等价于s[0:end];省略end,则表示截取的子串中包含从beg位置开始到最后一个字符之间的字符(包括最后一个字符);beg和end都省略,则表示子串中包含s中的所有字符。

注意 s[beg:end]截取子串中包含的字符是s中从beg至end-1(不包括end)位置上的字符。

Python中,对字符串中字符的下标有两种索引方式:从前向后索引和从后向前索引。如图2-1所示,从前向后索引方式中,第1个字符的下标为0,其他字符的下标是前一字符的下标增1;从后向前索引方式中,最后一个字符的下标为-1,其他字符的下标是后一字符的下标减1。在截取子串时,既可以只使用某一种下标索引方式,也可以同时使用两种下标索引方式。

image.png

 

图2-1 字符串索引方式示例

例如,对于下面的代码:

1    s='欢迎学习Python语言程序设计!'

2    print(s[2:4] #输出"学习"

3    print(s[-3:-1]) #输出"设计"

4    print(s[2:-1]) #输出"学习Python语言程序设计"

5    print(s[:10]) #输出"欢迎学习Python"

6    print(s[-5:]) #输出"程序设计!"

7    print(s[:]) #输出“欢迎学习Python语言程序设计!"

执行完毕后,第2~7行代码可以按每行代码对应注释中的描述输出结果。

如果要截取的子串中只包含1个字符,则也可以采用下面的写法:

s[idx]

其中,idx是要截取的字符的下标。例如,对于下面的代码:

1    s='欢迎学习Python语言程序设计!'

2    print(s[2]) #输出"学"

3    print(s[-1]) #输出"!"

执行完毕后,第2行和第3行代码分别按每行代码对应注释中的描述输出结果。

注意 使用下标“[]”可以访问字符串中的元素,但不能修改。例如,对于“s[2]='复'”这样的代码,执行时会报TypeError错误。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。