You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python切片访问正常但s[len(s)]报String index out of range错误问询

错误原因详解

Python中字符串属于序列类型,遵循两个核心索引规则:

1. 单个下标访问规则

  • 字符串下标从0开始计数,长度为n的字符串,合法单个下标范围是0到n-1
  • 你示例中s = 'hello'的长度是5,合法下标为0/1/2/3/4,len(s)的值是5,超出了合法下标范围,因此会抛出String index out of range错误
  • 如果要获取最后一个字符,除了写s[len(s)-1]外,还可以直接使用更简洁的负下标语法s[-1]

2. 切片操作的特殊规则

Python的切片[起始下标:结束下标]是左闭右开区间,即包含起始下标的字符、不包含结束下标的字符,同时切片允许结束下标超出字符串实际长度,不会触发报错:

  • 你写的s[0:len(s)]等价于s[0:5],会取下标0、1、2、3、4的所有字符,刚好对应完整字符串,因此可以正常运行
  • 甚至写s[0:100]也不会报错,只会返回完整的hello字符串

修正后的代码示例

s='hello'
print(s[0:len(s)]) # 输出 hello
print(s[len(s)-1]) # 输出 o,用长度减1取最后一个字符
print(s[-1]) # 输出 o,用负下标取最后一个字符,更推荐

内容的提问来源于stack exchange,提问作者PvC9966

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 14:00:02