《Python语言程序设计》 —2.2.2 String
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 转义字符描述
例如,对于下面的代码:
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。在截取子串时,既可以只使用某一种下标索引方式,也可以同时使用两种下标索引方式。
图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错误。
- 点赞
- 收藏
- 关注作者
评论(0)