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

Moving Between Rooms v5代码在PyCharm中触发IndexError的原因及修复

问题分析与修复:Moving Between Rooms v5代码错误

错误成因

你遇到的IndexError: list index out of range错误,根源在于代码逻辑矛盾:

  • 代码里的判断条件elif command in ['North', 'South', 'East', 'West']是在匹配纯方向指令(比如直接输入"North")
  • 但紧接着执行了direction = command.split(' ')[1],这个操作是把指令按空格拆分后取第二个元素——纯方向指令拆分后只有1个元素,根本没有索引为1的内容,所以触发越界错误。

修复方案

直接把输入的纯方向指令当作目标方向即可,不需要拆分。修改代码中的对应行:
原代码:

direction = command.split(' ')[1]

修改为:

direction = command

其他需要修复的潜在问题

  • 大小写敏感问题:当前代码只识别首字母大写的方向(比如"North"),如果用户输入小写的"north"会被判定为无效指令。可以统一转换格式后再判断:
    command = input("Enter command: ").strip().capitalize()  # 统一首字母大写,去除首尾空格
    # 后续判断保持原逻辑即可
    
  • 未定义房间的KeyError问题:你的rooms字典里,South Hall指向Food Court、North Hall指向Storage Room,但这两个房间并没有作为键存在于字典中。用户走到这两个房间后,后续操作会触发KeyError。需要补充这两个房间的定义,比如:
    rooms = {
        # 原有房间保持不变
        'Food Court': {'West': 'South Hall'},
        'Storage Room': {'West': 'North Hall'}
    }
    
  • 指令输入容错:通过strip()处理用户输入的多余空格,比如输入" North "这种带空格的情况,避免无效判断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 10:46:12