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

启发式井字棋Python代码报错:String index out of range

井字棋代码 IndexError 问题排查与解决

核心原因分析

IndexError: string index out of range 出现在game_won_by函数访问board字符串索引时,本质是访问的索引值超出了board字符串的实际长度范围。井字棋的标准棋盘应为9字符长度(对应3×3网格),若board长度不足9,访问索引8及以上位置必然触发越界错误。

排查与修复步骤

  • 校验board字符串长度:在game_won_by函数开头添加长度检查,提前拦截异常情况:
    def game_won_by(board):
        # 先验证棋盘格式合法性
        if len(board) != 9:
            return None  # 或抛出明确的格式错误提示
        # 后续赢局判断逻辑
    
  • 检查索引访问逻辑:排查函数中所有硬编码或计算得出的索引值,确保不超过len(board)-1。例如常见的赢局判断循环:
    # 错误示例:未判断board长度,若board短于9会报错
    for i in range(3):
        # 访问i*3+2时,若board长度不足9,索引会越界
        if board[i*3] == board[i*3+1] == board[i*3+2] != ' ':
            return board[i*3]
    
    修复后需依赖前置的长度校验,或在访问前增加判断。
  • 回溯棋盘更新流程:检查所有修改board的逻辑(如玩家落子、AI决策),确保没有出现字符串截断、拼接错误导致board长度改变。例如,若落子时错误地使用了replace替换多个字符,可能导致长度缩短。

精准定位建议

若提供完整代码和错误回溯的具体行号,可以直接定位到越界的索引代码行,给出针对性修复方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 13:01:10