1. 字符串的索引
字符串的索引从前往后是从0开始计数,从后往前是从-1开始依次 -1
2.字符串切片方法
语法格式 str[beginIndex:endIndex:step] 取值结果: [begin,end) / 含头不含尾
步长不设置时默认为1
3.切片
① 取x-y位置的字符串: 从中间开始,中间结束
因为字符串的索引是从0开始,索引如果要取到x-y位置的字符串,那么开始的索引就是x-1
字符串切片时切片的结果是含头不含尾,那么结束的索引就是y(索引从0开始)
str1 = 'this is uesd to test substring'# 1.取某个位置到某个位置的值 从中间开始,中间结束print("从str1中取第四个到第五个字符,结果:", str1[3:5])
② 取x-y位置的字符串: 取到最后一位
如果知道字符串的长度时,可以直接指定字符串的长度,然后得到结果
如果不知道字符串的长度,也可以直接不填[x-1:] 来获得取值结果
# 2.取某个位置到某个位置的值 取到结尾print("从str1中取第二个到第最后一个字符,结果:", str1[1:len(str1)])print("从str1中取第二个到第最后一个字符,结果:", str1[1:])
③ 取x-y位置的字符串: 从头开始
从头开始取同取到最后一位,如果beginIndex直接不填 [:y] ,就是从第一位开始
或者beginIndex位置填0
# 3.取某个位置到某个位置的值 从头开始print("从str1中取第一个到第三个字符,结果:", str1[0:3])print("从str1中取第一个到第三个字符,结果:", str1[:3])
④ 取某个字符串 从头到尾
# 4.取某个字符串 从头到尾print("从str1中取从头到尾的数值,结果:", str1[0:])print("从str1中取从头到尾的数值,结果:", str1[:])
⑤ 取某个字符串 中间隔一位取值
切片-步长取值的顺序为 :
1)获取开始索引位置的值
2)按照步长取得下一位值,直到结束
如果想隔一位,将步长设置成2即可
# 5.隔一个字符取值print("从str1中取从头到尾的数值", str1[::])print("从str1中取从头到尾的数值,中间跳1个字符,结果:", str1[::2])
⑥ 倒序取值
同第五步,只需要将开始的值设置成最后一位,结束的值设置成第一位即可
因为取值结果含头不含尾,此时结束的值不能设置为0,需要设置为空才能取到最后一个值,开始的值可以设置为-1
# 6.从后开始往前取值print("str1字符串反转,结果:", str1[::-1])print("str1字符串反转,结果:", str1[-1::-1])
⑦ 从后开始往前取值,中间隔一个字符
同第六步,只需要将步长设置为-2即可
# 7.从后开始往前取值,隔一个字符print("str1从后开始往前取值,隔一个字符,结果:", str1[-1::-2])print("str1从后开始往前取值,隔一个字符,结果:", str1[::-2])
⑧ 得到某个位置的值
可以从前,也可以从后取
# 8.取从头开始计算某个字符的值print("str1的第五个字符", str1[4])# 9.取从尾开始计算某个字符的值print("str1的倒数第三个字符", str1[-3])