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

Python开发4×4类井字棋游戏遇TypeError错误求助

问题分析与解决方案

错误原因

你遇到的TypeError核心问题是:代码里错误地将分隔符|和棋盘位置写成了列表(比如['|']、['a2']),但board['a1']是字符串类型,Python不支持字符串与列表直接拼接。另外,['a2']属于误用,你需要调用board['a2']来获取对应位置的棋盘状态,而非直接写键名的列表。

修正后的可运行代码

# 初始化4×4棋盘字典
theBoard = {
    'a1': ' ', 'a2': ' ', 'a3': ' ', 'a4': ' ',
    'b1': ' ', 'b2': ' ', 'b3': ' ', 'b4': ' ',
    'c1': ' ', 'c2': ' ', 'c3': ' ', 'c4': ' ',
    'd1': ' ', 'd2': ' ', 'd3': ' ', 'd4': ' '
}

def printboard(board):
    # 用f-string格式化输出,避免字符串拼接错误
    print(f"{board['a1']}|{board['a2']}|{board['a3']}|{board['a4']}")
    print('-+-+-+-')
    print(f"{board['b1']}|{board['b2']}|{board['b3']}|{board['b4']}")
    print('-+-+-+-')
    print(f"{board['c1']}|{board['c2']}|{board['c3']}|{board['c4']}")
    print('-+-+-+-')
    print(f"{board['d1']}|{board['d2']}|{board['d3']}|{board['d4']}")

# 测试打印初始棋盘
printboard(theBoard)

关键修改说明

  1. 将所有列表格式的['|']、['a2']改为正确的字符串调用:用'|'作为分隔符,用board['a2']获取对应位置的状态
  2. 使用f-string格式化输出,代码更易读,彻底避免字符串与列表拼接的类型错误
  3. 修正了原函数内的缩进问题(原代码中print语句缩进不符合Python规范)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 09:10:33