Python新手运行代码报Index Out Of Range错误,如何解决?
问题排查与解决
报错根因
- 你编写的
for w in 'words'是遍历字符串'words',每次循环获取的w是单个字符,比如首次循环w为'w',后续依次为'o'/'r'/'d'/'s'。 - 单个字符组成的字符串长度仅为1,合法索引只有
0,尝试访问w[4]必然触发IndexError: string index out of range报错。
修正方案
根据你可能的实际需求,有两种常见的修改方式:
需求1:判断字符串'words'的第4位是否为z
无需循环,直接对原字符串做索引判断即可:
target_str = 'words' if target_str[4] == 'z': print(target_str)
注:Python索引从0开始计数,target_str[4]对应字符串第5位的字符s,上述判断结果为False,无输出。
需求2:遍历多个单词,检查每个单词的第4位是否为z
将循环的迭代对象替换为单词列表(用方括号包裹)即可:
for word in ['words', 'apple', 'fuzzx']: if word[4] == 'z': print(word)
运行后会输出符合条件的单词fuzzx。
内容的提问来源于stack exchange,提问作者Gorgon
相关产品推荐
相关产品推荐

