字符串的切片认识
切片 方法适用于 字符串、列表、元组
- 切片 使用 索引值 来限定范围,从一个大的 字符串 中 切出 小的 字符串
- 列表 和 元组 都是 有序 的集合,都能够 通过索引值 获取到对应的数据
- 字典 是一个 无序 的集合,是使用 键值对 保存数据
使用方法:
字符串[开始索引:结束索引:步长]
注意:
- 指定的区间属于 左闭右开 型
[开始索引, 结束索引)
=>开始索引 >= 范围 < 结束索引
从起始
位开始,到结束
位的前一位 结束(不包含结束位本身) - 从头开始,开始索引 数字可以省略,冒号不能省略
- 到末尾结束,结束索引 数字可以省略,冒号不能省略
- 步长默认为
1
,如果连续切片,数字和冒号都可以省略
索引的顺序和倒序
- 在 Python 中不仅支持 顺序索引,同时还支持 倒序索引
- 所谓倒序索引就是 从右向左 计算索引
- 最右边的索引值是 1,依次递减
演练:
>>> num = "0123456789"
>>> num
'0123456789'
1、截取2-5的内容
>>> print(num[2:6])
2345
>>>
- 截取从 2 ~
末尾
的字符串
>>> print(num[2:])
23456789
>>>
-
截取从
开始
~ 5 位置 的字符串 -
截取完整的字符串
-
从开始位置,每隔一个字符截取字符串
-
从索引 1 开始,每隔一个取一个
-
倒序切片 -1 表示倒数第一个字符
-
截取从 2 ~
末尾 - 1
的字符串 -
截取字符串末尾两个字符
-
字符串的逆序
>>> print(num[:6])
012345
>>> print(num[:])
0123456789
>>> print(num[::2])
02468
>>> print(num[1::2])
13579
>>> print(num[-1])
9
>>> print(num[2::-1])
210
>>> print(num[-2:])
89
>>> print(num[::-1])
9876543210
在截取字符串时,如果指定的索引不存在,则会抛出异常。IndexError:string index out of range
要解决这个问题,可以使用try…except语句获取异常。
二、python字符串截取split
1.截取字符串
#在截取字符串时,如果指定的索引不存在,则会抛出异常。IndexError:string index out of range
要解决这个问题,可以使用try…except语句获取异常。
str = "为中国运动员加油!"
try:
substr = str[10]
except IndexError:
print("指定的索引不存在")
2.分割字符串
语法:str.split(sep.maxsplit)
str:表示要进行分割的字符串。
sep:用于指定分隔符,默认值为None(包括空格、换行符\n、制表符\t)。
maxsplit:用于指定分割的次数,如果不指定该参数,或值-1,则分割次数没有限制,否则返回结果列表的元素个数最多为maxsplit+1。
注意:如果不指定sep参数,则也不能指定maxsplit参数。
str = "w w w.baidu.com"
list1 = str.split() #采用默认分隔符进行分割
list2 = str.split('.') # 采用"."进行分割
list3 = str.split(' ') #采用空格进行分割
list4 = str.split(' ',3) # 采用空格进行分割,且只分割前3个字符
print(list1)
print(list2)
print(list3)
print(list4)
运行结果:
['w', 'w', 'w.baidu.com']
['w w w', 'baidu', 'com']
['w', 'w', 'w.baidu.com']
['w', 'w', 'w.baidu.com']