目录
1. 字符串切片
字符串也是序列的一种,序列实现切片操作的语法格式如下::
sname[start : end : step]
其中,各个参数的含义分别是:
- sname:表示序列的名称;
- start:表示切片的开始索引位置(包括该位置),此参数也可以不指定,会默认为 0,也就是从序列的开头进行切片;
- end:表示切片的结束索引位置(不包括该位置),如果不指定,则默认为序列的长度;
- step:表示在切片过程中,隔几个存储位置(包含当前位置)取一次元素,也就是说,如果 step 的值大于 1,则在进行切片去序列元素时,会“跳跃式”的取元素。如果省略设置 step 的值,则最后一个冒号就可以省略。
x = 'a1b34cd7e9'
#下标读取单个字符
x[0]
Out[3]: 'a'
x[3]
Out[4]: '3'
#[start:end]读取从start到end-1间的字符串切片
x[0:3]
Out[5]: 'a1b'
x[4:9]
Out[6]: '4cd7e'
#start为空,则从0开始读取到end-1
x[:5]
Out[9]: 'a1b34'
#end为空,则从start开始读取到字符串末尾
x[4:]
Out[8]: '4cd7e9'
#start、end都为空,读取全部字符串
x[:]
Out[10]: 'a1b34cd7e9'
#[start:end:step],读取从start到end-1以step为间隔的字符串切片
x[2:8:3]
Out[11]: 'bc'
#下标、start、end可以为负数,表示从后往前第几位
x[-1]
Out[15]: '9'
x[-5:-1]
Out[17]: 'cd7e'
x[-5:]
Out[18]: 'cd7e9'
x[:-3]
Out[19]: 'a1b34cd'
#step为负数,表示从后往前计数,此时start值>end值,否则无法读取到非空的切片
x[::-1]
Out[12]: '9e7dc43b1a'
x[2:9:-2]
Out[13]: ''
x[9:2:-2]
Out[14]: '97c3'
2. 字符串运算
字符串支持 + 、* 运算符运算,字符串 + 运算是拼接,* 运算是叠拼复制;
字符串同时也支持 +=、*= 运算。
#字符串拼接
'123' + '456'
'123456'
#字符串叠拼
'123' * 3
'123123123'
#字符串自加、自乘
s = '123'
s += '555'
s
'123555'
s *= 3
s
'123555123555123555'