字符串的重复
由*表示重复:
字符串文本的重复,使用
>>> 3*'py'
'pypypy'
>>> 'py'*3
'pypypy'
>>>
变量的重复,使用
>>> a='py'
>>> b='thon'
>>> 3*a
'pypypy'
>>> 3*a+b*3
'pypypythonthonthon'
>>>
字符串的拼接
由+操作符连接
用于两个字符串文本,使用
>>> 'py'+'thon'
'python'
>>> 'py'+'th'+'on'
'python'
用于两个变量,使用
>>> a='py'
>>> b='thon'
>>> a+'thon'
'python'
>>> a+b
'python'
>>>
相邻的两个字符串文本自动连接。
>>> a='py'
>>> b='thon'
>>> a+'thon'
'python'
>>> a+b
'python'
>>>
它只用于两个字符串文本,不能用于字符串表达式:
>>> a='py'
>>> b='thon'
>>> a 'thon'
File "<stdin>", line 1
a 'thon'
^
SyntaxError: invalid syntax
>>> ab
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'ab' is not defined
>>>
字符串的索引
Python没有单独的字符类型,一个字符就是一个简单的长度为1的字符串。左字符串的第一个字符索引为 0,而长度为 n 的字符串其最后一个字符的右界索引为 n。例如:
+---+---+---+---+---+---+
| P | y | t | h | o | n |
+---+---+---+---+---+---+
0 1 2 3 4 5 6
-6 -5 -4 -3 -2 -1
文本中的第一行数字给出字符串中的索引点 0…6。
第二行给出相应的负索引。请注意 -0 实际上就是 0,所以它不会导致从右边开始计算。
所以索引的结果为:
>>> a='python'
>>> a[0]
'p'
>>> a[1]
'y'
>>> a[5]
'n'
>>> a[6]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: string index out of range
>>>
试图使用太大的索引会导致错误。
字符串的切片
切片是从 i 到 j 两个数值标示的边界之间的所有字符,切片后获得一个子字符串。
如str[0:5],为取从0-5位之间的字符,不包含第5位。示例:
>>> a='python'
>>> a[0:6]
'python'
>>> a[0:5]
'pytho'
>>> a[1:5]
'ytho'
>>>a[:-1]
'pytho'
>>>a[:5]
'pytho'
str[index:index:step],中括号里面分别为:字符起点、终点和步长。
比如str[0:4:2],为从0位开始,4位结束,每隔2步取一个,示例:
a='python'
>>>a[::2]
'pto'
>>>a[0:4:2]
'pt'
>>>a[1:4:2]
'yh'
>>>a[::-1]
'nohtyp'
>>>a[::-2]
'nhy'