题主你好,
字符串切片, 通常情况下有这么几种情况:
a. 第1种情况, 起始索引和结束索引都未省略时, 得到的结果用我的话说是: 包前不包后, 这一点通过题主的问题可以得知,是知道这一点的.
举例: a = '01234' a[2:4]的值为'23';
b.第2种情况,起始索引省略, 结束索引未省略, 此时起始索引默认值为0.
举例来说: a = '012345' a[:2]等价于a[0:2],按照包前不包后的原则, 最后的结果: '01'
c.第3种情况,起始索引未省略, 结束索引省略, 此时结束索引默认值为被分片字符串的长度.
举例来说: a = '01234' a[2:]等价于a[2:len(a)]也就是a[2:5], 还是按照包前不包后的原则,最后的结果: '234'
d.第4种情况, 起始索引和结束索引都省略, 则根据b和c所说的, 起始索引默认为0,结束索引默认为字符串的长度len(字符串).
举例来说: a = '01234' a[:]等价于a[0:len(a)],也就是a[0:5], 还是按照包前不包后的原则, 最后得到结果: '01234'
--------
上面b,c情况的依据:
上面翻译过来是: 第一个索引如果被省略, 则默认值为0;
第二个索引如果被省略, 则默认值为被分片字符串的长度;
----------------
上面所说为分片索引也可以是负数, 负数是从右向左数, 与正数分片索引不同的是, 负数的分片索引起始值为-1, 正数的分片索引起始值为0.
举例来说中: a = '01234', a[0:-1], 因为-1是字符串最后一个字符的索引, 再根据上面所说的包前不包后原则, 结果就是去掉最后一个字符,剩下的内容: '0123'
希望可以帮到题主, 欢迎追问.
不指定stop参数的话默认是这个字符串的长度,相当于 'python'[0:6]。'python'[0:5]的结果才是'pytho'
n’[0:] 输出'python' 输出不应该是‘pytho’