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

Python判断连续's'代码报IndexError:原因及修复咨询

问题分析与修复:检测连续's'的代码报错

错误原因

你的代码触发IndexError: list index out of range的核心原因是索引越界:

  • 循环用了range(len(word)),意味着i会遍历从0到len(word)-1的所有索引。当i取到最后一个元素的索引(len(word)-1)时,word[i+1]试图访问列表不存在的位置(列表最大索引就是len(word)-1),直接引发索引越界错误。
  • 同时代码还有逻辑缺陷:只要遇到单个's'就立刻输出结果,会导致提前终止判断(比如字符串是"sxs",第一个's'后不是's'就会直接输出"no hiss",忽略后面可能的连续's'),而且会多次打印结果。

修复方案

方案1:最简洁的Pythonic写法

直接利用字符串的in操作符检测是否包含连续的"ss",无需转列表或循环,代码简洁高效:

word = input().strip()
print("Hiss" if "ss" in word else "No hiss")

方案2:修复原循环逻辑

如果想保留循环的思路,需要调整循环范围并修正判断逻辑:

word = list(input().strip())
has_double_s = False
# 循环只到倒数第二个元素,避免i+1越界
for i in range(len(word) - 1):
    if word[i] == 's' and word[i+1] == 's':
        has_double_s = True
        break  # 找到后立刻终止循环,无需继续检查
print("Hiss" if has_double_s else "No hiss")
  • 循环范围改为range(len(word)-1),确保i+1始终是有效的列表索引
  • 用一个标记变量记录是否找到连续's',循环结束后统一输出结果,避免多次打印或提前误判

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 15:15:32