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

反转字符串时出现IndexError: list index out of range错误求助

解决列表索引越界问题

嘿,这个问题很好排查!咱们先看看为啥会触发IndexError:

问题根源

Python里列表/字符串的索引是从0开始的。比如你传入的字符串长度是n,那它对应的列表s的有效索引范围是0到n-1。你原代码里一开始把x设成了len(str)(也就是n),第一次循环就去访问s[x],这明显超出了列表的有效索引范围,自然就报错啦。

修复方案

方案1:修正循环的起始索引

调整x的初始值,同时把函数改成返回反转后的字符串(原代码直接print字符,最后函数返回None,不符合函数的设计逻辑):

def FirstReverse(str): 
    # 把初始x改成len(str)-1,对应最后一个字符的索引
    x = len(str) - 1
    s = list(str)
    reversed_str = ""
    while x >= 0:
        reversed_str += s[x]
        x = x - 1
    return reversed_str

# 调用函数并打印结果
print(FirstReverse(raw_input()))

方案2:用Pythonic的写法简化代码

Python里反转字符串有超级简洁的切片写法,一行就能搞定,完全不用手动写循环:

def FirstReverse(str): 
    # 切片[::-1]表示从后往前取所有字符,实现反转
    return str[::-1]

print(FirstReverse(raw_input()))

这样两种方式都能解决你的索引越界问题,而且第二种写法更符合Python的风格哦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:49:21