我真的很困惑,现在:空字符串返回而不是IndexError
>>> string = "some string"
>>> string[100:105]
''
>>> string[100]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: string index out of range
为什么string[100:105]
返回一个空字符串,而string[100]
引发IndexError(如预期)?为什么string[100:105]
不会引发IndexError?
因为这就是它的定义。切片永远不会引起索引错误。 –
这只是他们做出的奇怪的设计决定。 – user2357112
http://stackoverflow.com/questions/9490058/why-substring-slicing-index-out-of-range-works-in-python。标记为重复 – nir0s