如果myStr='test',为什么myStr[4]产生超出范围的错误,而myStr[4:]没有?

2024-10-01 15:44:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用递归遍历字符串的值。当我超过最后一个字符时,它允许我使用索引位置作为空字符串"",而不是给出一个错误。为什么?在

myStr = 'test'
print(myStr[4])

产生错误

^{pr2}$

不会产生任何错误。在


Tags: 字符串test错误字符printpr2mystr
3条回答

因为数组访问的定义使得一个单独的索引超出范围是错误的,而不是一个切片(部分或全部)超出范围。如果切片的任何部分超出范围,它只会生成不结果,而不会触发错误。在

Python 3.0 documentation 表示字符串

Attempting to use an index that is too large will result in an error. However, out of range slice indexes are handled gracefully when used for slicing.

切片不是由内置类型检查的边界。如果数组索引超出界限,它将自动在正确的位置截断。在

相关问题 更多 >

    热门问题