第3章基本数据类型;字符串类型及其操作;字符串是字符的序列表示,可以由一对单引号(')、双引号()或三引号(''')构成,其中,单引号和双引号都可以表示单行字符串,两者作用相同。使用单引号时,双引号可以作为字符串的一部分;使用双引号时,单引号可以作为字符串的一部分。三引号可以表示单行或者多行字符串。三种表示方式如下;单引号字符串:'单引号表示,可以使用双引号作为字符串的一部分'
双引号字符串:双引号表示,可以使用'单引号'作为字符串的一部分
三引号字符串:'''三引号表示可以使用双引号;打印字符串的Python运行结果如下,注意其中的引号部分:
;input()函数将用户输入的内容当作一个字符串类型,这是获得用户输入的常用方式。print()函数可以直接打印字符串,这是输出字符串的常用方式。如下例子展示了如何用变量name来存储用户的名字,再输出这个变量的内容:
;第2.2.4节已经介绍,字符串包括两种序号体系:正向递增序号和反向递减序号。如果字符串长度为L,正向递增需要以最左侧字符序号为0,向右依次递增,最右侧字符序号为L-1;反向递减序号以最右侧字符序号为-1,向左依次递减,最左侧字符序号为-L。这两种索引字符的方法可以在一个表示中使用。;Python字符串也提供区间访问方式,采用[N:M]格式,表示字符串中从N到M(不包含M)的子字符串,其中,N和M为字符串的索引序号,可以混合使用正向递增序号和反向递减序号。如果表示中M或者N索引缺失,则表示字符串把开始或结束索引值设为默认值。;字符串以Unicode编码存储,因此,字符串的英文字符和中文字符都算作1个字符。观察下面实例:
;反斜杠字符(\)是一个特殊字符,在字符串中表示“转义”,即该字符与后面相邻的一个字符共同组成了新的含义。例如:\n表示换行、\\表示反斜、\’表示单引号、\”表示双引号、\t表示制表符(TAB)等。例如:
;Python提供了5个字符串的基本操作符,如表3.10所示。
;与操作符有关的实例如下:
;程序读入一个表示星期几的数字(1-7),输出对应的星期字符串名称
例???:输入3,返回“星期三”。代码如下:
运行结果如下:请输入星期数字(1-7):3
星期三;微实例3.1通过在字符串中截取适当的子串来实现星期名称的查找。问题的关键在于找出子串的剪切位置。因为每个星期日期的缩写都由3个字符组成,如果知道星期日期字符串的起始位置,就能很容易获得缩写子串。
通过下面语句,可以获得从起始位置pos开始且长度为3的子串:
weekAbbrev=weekstr[pos:pos+3];使用字符串作为查找表的缺点是,所剪切的子字符串长度必须相同。如果各缩写表示长度不同,还需要其他语句辅助
例如,请读者思考,该如何实现一个“获取月份字符串”呢?要求根据1-12的数字返回月份名称。;字符串中可以增加特殊的格式化控制字符,用来输出特殊效果。特殊的格式化控制字符使用反斜杠(\)开头,常用控制字符如下:
\a:蜂鸣,响铃\b:回退,向后退一格
\f:换页\n:换行,光标移动到下行首行
\t:水平制表\r:回车,光标移动到本行首行
\v:垂直制表\0:NULL,什么都不做;Python解释器提供了一些内置函数,详细请参考5.8节。其中,有6个函数与字符串处理相关,如表3.11所示。
;len(x)返回字符串x的长度,Python3以Unicode字符为计数基础,因此,字符串中英文字符和中文字符都是1个长度单位
str(x)返回x的字符串形式,其中,x可以是数字类型或其他类型;每个字符在计算机中可以表示为一个数字,字符串则以数字序列的方式存储在计算机中。目前,计算机系统使用的一个重要编码是ASCII编码,该编码用数字0-127表示计算机键盘上常见的字符以及一些被称为控制代码的特殊值。例如,大写字母A-Z用65-90表示,小写字母a-z用97-122表示。;chr(x)和ord(x)函数用于在单字符和Unicode编码值之间进行转换。chr(x)函数返回Unicode编码对应的字符,其中,Unicode编码x的取值范围是0到1,114,111(即十六进制数0x10FFFF)。ord(x)函数返回单字符x对应的Unicode编码。如下:
;设想在某些情况下给朋友传递字条信息,但又不希望传递中途被第三方看懂这些信息,因此需要对字条信息进行加密处