首页 > 解决方案 > 由 Python 3 中的 ""[0] 引起的 IndexError

问题描述

s = ''
# case 1
print(s[0])
# case 2
print(s[:1])
print(s[0:1])

在第一种情况下,我得到一个IndexError: string index out of range,但第二种情况是完全正确的。我很困惑; 他们不应该是一样的吗?在这两种情况下,我们都在字符串中的位置 0 处打印字符。我可以理解错误,毕竟字符串中没有字符,但我希望这两种情况都会给出相同的错误。

谢谢!

标签: pythonpython-3.x

解决方案


切片比索引更宽容。如果您的切片索引超出范围,您将获得一个空序列或字符串。如果你索引一个不存在的字符,你会得到一个你发现的错误。


推荐阅读