字符串是字符的有序集合,可以通过其位置来获得具体的元素。在python中,字符串中的字符是通过索引来提取的,索引从0开始。
1:python中的索引:string[index]
p='helloworld' print p[4] #结果是0 print p[-1] #结果是d,最后一位
超出索引:IndexError: string index out of range
2:python中的分片,分片的含义是分片提取相应部分数据: 通常上边界不包括在提取字符串内
格式:string[头下标:尾下标:步长] ,步长默认为1 越界不会报错,取到结尾
- 如果没有指定值,则分片的边界默认为0和序列的长度
- str[1:3]获取从偏移为1的字符一直到偏移为3的字符串,不包括偏移为3的字符串
- str[1:] 获取从偏移为1的字符一直到字符串的最后一个字符(包括最后一个字符)
- str[:3] 获取从偏移为0的字符一直到偏移为3的字符串,不包括偏移为3的字符串
- str[:-1] 获取从偏移为0的字符一直到最后一个字符(不包括最后一个字符串)
- str[:] 获取字符串从开始到结尾的所有元素
- str[-3:-1] 获取偏移为-3到偏移为-1的字符,不包括偏移为-1的字符
- str[-1:-3]和str[2:0] 获取的为空字符,系统不提示错误
- 分片的时候还可以增加一个步长,str[::2] ,表示步长为2
p='helloworld' print p[0:4] #结果为hell print p[:] #结果为helloworld print p[0:5:2] #结果为hlo
3:python中字符串“拷贝” 分片中的 str[:]
4: python中字符串“翻转” 分片中的 [::-1]
name ='hello world' print name[::-1] #结果输出 dlrow olleh
5:字符串连接
+:可以用加号,需要先转成string再做拼接
每连接一次,就要重新开辟空间,然后把字符串连接起来,再放入新的空间,大量字符串拼接时,效率低
name ='小明' age = 12 print name + '今年'+ str(age) +'岁了啊!' 输出:小明今年12岁了啊!join 语法:'sep'.join(seq)
上面的语法即:以sep作为分隔符,将seq所有的元素合并成一个新的字符串
name = 'ABCDEFGH' print '+'.join(name) 输出:A+B+C+D+E+F+G+H
注意*加号连接效率低是在连续进行多个字符串连接的时候出现的,如果连接的个数较少,加号连接效率反而比join连接效率高
字符串连接也可以使用之前说的 format和%