Python 字符串的基本操作 (一)
- 1. 字符串的表示
- 2. 索引
- 3. 分片
- 3.1. 分片格式:S[ i:j ]
- 3.2. 分片格式:S[ i:j:k]
- 4. 合并
1. 字符串的表示
可使用两个单引号(’)或两个双引号(“)括起来创建字符串。
例子1:
X = 'I am teacher!'
print(X)
注意: 单引号和双引号的作用是一样的。
在Python 中还可使用 三引号(‘’‘ ’‘’ 或 “”“ ”“”)。三引号中可以输入单引号、双引号或换行等字符。三引号的形式输入多行文本,即三引号之间输入的内容会原样保留,如果有单、双引号不用转义,不可见的字符(换行、回车等字符)都会原样保留。
- 单引号中可以使用双引号,中间的字符会当做字符串输出。
- 双引号中可以使用单引号,中间的字符会当做字符串输出。
- 三单引号或三双引号中间的字符串在输出时保持原来格式。
2. 索引
字符串对象是一个字符序列或某一个值。序列式是有顺序的,根据字符在序列中的位置将其编号,字符在字符串中的位置被称为 “索引”。字符串中的字符是通过索引来提取的。
注意: 索引是从 0 开始的,也可以取负数,表示从末尾开始提取,最后一个为 -1,倒数第二个为 -2,程序认定可从结束处反向计数。
用索引运算符 “[ ]” 来提取字符串中的字符。比如:
注意: 若索引超出字符串的范围时会报错(IndexError: string index out of range)。
3. 分片
与使用索引取某一个值 (元素)时类似,可使用分片操作来访问一定范围内的值(元素);被截取的部分称为 “子串” 或 “子序列”。
索引运算符冒号( : )指出子序列(子串)的范围。
注意: 在分片的过程中不会改变原来的字符串。
3.1. 分片格式:S[ i:j ]
表示选择 S 字符串中从索引位置 i 到索引位置 j -1 的子序列(子串)。因为Python采用的是半开区间,半开区间包含范围的起始值,但不包含结束值。
注意:空格也算一个字符。
例子2:
子序列包含了原来字符的第3、4和5、6位置的字符。
更多例子:
中文字符也可以分片。
3.2. 分片格式:S[ i:j:k]
表示 S 字符串从索引位置 i 到索引位置 j -1 的子序列(子串),每隔 K 个字符索引一次,k 为步长,默认为1。若省略 i,则表示从起始位置开始索引 ;若省略 j,则表示到结束位置位置。
步长值表示从源字符中每个多少个字符就取出值到子串(子序列)中,可使用负数作为步长,步长 -1表示分片将会从右到左进行(通常由左到右),主要是将序列反转。
例子3:
例子4:
注意: Python 不支持字符类型;字符被视为长度为1的字符串(中文在Python 中是占两个字符的,但在分片中被视为长度为 1),因此被认为是一个子字符串。访问子串(子序列),要使用方括号的切片和索引或直接使用索引来获取字符串。
4. 合并
Python 可用 “+” 连接不同的字符串,得到一个新的字符串。新的字符串由前面两个字符串连接而成。
例子5:
注意: Python 根据操作数的类型决定原酸的类型,因为 “+” 运算符也可以当做假发运算符使用。如果 “+” 两侧都是字符串类型,进行连接操作;如果 “+” 两侧都是数字类型,进行加法运算;如果 “+” 两侧是不同的类型,解释器将会报错。例子6: