第二章(2)
2.2字符串
字符串和数值是Python处理的最为常见的数据类型。
1、字符串字面量
它是字符构成的一个序列,并视其为一个整体。它可以表示为单引号(')或者双引号(")包围的一个字符序列。当字符串使用双引号定义时,单引号可以直接出现在字符串中,但双引号则不可以。相应的由单引号定义的字符串里面可以包含双引号,但不能包含单引号。
2、变量
变量也可以赋值为字符串,字符串类型的变量首先出现在赋值语句中时即被创建出来(即变量存在)。
3、索引和切片
如果str1是一个字符串变量或者字面量,str1[i]则是字符串中索引i对应的字符。
子字符串或切片是字符串中连续字符的一个序列。如果str1是一个字符串,则str1[m:n]是以位置m开始,位置n-1结束的子字符串。
“spam &eggs”[m:n]是标记为数字m和n的箭头之间的子字符串;例如,“spam & eggs”[2:6]是子字符串"am &"。
注意,如果m>=n,则str1[m:n]的值为空字符串。
如果subStr是一个字符串,那么str1.find(subStr)将开始从左向右搜索字符串str1,并返回subStr首次出现的正向索引位置。而str1.rfind(subStr)将开始从右向左搜索字符串str1,并返回字符串subStr首先出现的正向索引位置。如果不在字符串中,则返回值为-1。
4、反向索引
上文讨论的索引是按照字符串自左向右而确定的,Python也支持自右向左地使用负数进行索引。通过反向索引,最右端的字符索引值为-1,它左边的一个字符索引值为-2,以此类推。
5、切片的默认边界
在表达式str1[m:n]中,其中一个或者两个边界都是可以忽略的。左边界m的默认值为0,右边界n的默认值为字符串的长度。也就是,str[:n]包括了从字符串首字符到str[n-1]之间的所有字符,str1[m:]包括了从str1[m]到字符串末尾的所有字符。切片str1[:]正好表示整个字符串str1。
6、字符串连接
两个字符串可以连接起来组成一个新的字符串,这个操作称为连接。
例如,
"good"+"bye"结果为“goodbye”。
由字符串、标点符号、函数和方法构成的一个可运算字符串称为字符串表达式。当一个字符串表达式出现在赋值语句或者print函数中时,字符串表达式先进行计算再赋值或显示。
7、字符串重复