向各位大佬们请教一个关于字符串切片和索引的问题
问题描述:
如下代码
a=''
a[0]
运行之后会有如下报错提示
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
a[0]
IndexError: string index out of range
但是如果我把代码改成这样,却能够正常运行
a=''
a[:1]
我想知道a[0]和a[:1]之间有什么区别,为什么上述代码a[0]不可以运行,而a[:1]却可以正常运行?
答
访问索引的话 a[0] 如果a没有索引为0的元素,会报错。
而切片的话 a[:1] 如果切片结束的值大于a字符串(或列表)的长度,并不会报错,而是会把切片结束的值自动替换为a字符串(或列表)的长度。
答
这是python中切片索引的情况。
用list来说明:
a = [1, 2, 3]
a【4】就会报错, a【:4】就不会
前者是索引, 后者是切片。是不同的东西。
你那个空串也是一样的道理。
只要知道是两种不同的东西即可。
另外,索引、和切片的赋值也有一些知识点哦。
答
a=“”里面为空,所以a[0]肯定也是空,相当于根本没有元素,肯定就不能找到索引为0的元素;
而a[:1]是把索引为1前面的全部拿出来,且不包括索引1