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

如何简化井字棋棋盘的打印实现?

如何简化井字棋棋盘的打印实现?

当然可以啦!你想要的这种把棋盘整合成一个变量再打印的需求完全能实现,而且还有更灵活的写法,我给你一步步拆解:

1. 快速实现:用多行F-string直接嵌入变量

你原来的思路是对的,但普通字符串没法直接嵌入变量,而且多行字符串的写法需要调整。Python 3.6+支持的多行F-string刚好能解决这个问题,直接把board_list里的元素嵌入到模板里:

board_list = [[1,2,3], [4,5,6], [7,8,9]]

# 用三重引号定义多行模板,直接嵌入变量
board_representation = f"""+-----------------+
|  {board_list[0][0]}  |  {board_list[0][1]}  |  {board_list[0][2]}  |
+-----------------+
|  {board_list[1][0]}  |  {board_list[1][1]}  |  {board_list[1][2]}  |
+-----------------+
|  {board_list[2][0]}  |  {board_list[2][1]}  |  {board_list[2][2]}  |
+-----------------+"""

print(board_representation)

运行这段代码就能得到你想要的输出,和原来的效果完全一致,而且只需要一次print调用。

2. 更灵活:封装成函数,避免重复代码

如果以后你需要修改棋盘内容或者格式,重复写模板会很麻烦,把打印逻辑封装成函数会更易维护:

def print_board(board):
    # 定义重复的分隔线
    separator = "+-----------------+"
    print(separator)
    # 遍历每一行数据,动态生成打印内容
    for row in board:
        print(f"|  {row[0]}  |  {row[1]}  |  {row[2]}  |")
        print(separator)

board_list = [[1,2,3], [4,5,6], [7,8,9]]
print_board(board_list)

这样不管board_list里的数字怎么变,只要调用print_board就能自动生成正确的棋盘,代码也更简洁。

3. 进阶通用版:适配任意大小的棋盘

如果以后想扩展成4x4甚至更大的棋盘,可以用更通用的写法,自动根据棋盘尺寸生成格式:

def generate_board(board):
    cell_width = 4  # 每个格子的宽度,可调整
    # 自动生成分隔线
    separator = "+" + "+".join(["-"*cell_width]*len(board[0])) + "+"
    lines = [separator]
    # 遍历每一行,生成带居中数字的行内容
    for row in board:
        line = "|" + "|".join([f"{num:^{cell_width}}" for num in row]) + "|"
        lines.append(line)
        lines.append(separator)
    # 把所有行拼接成一个字符串
    return "\n".join(lines)

board_list = [[1,2,3], [4,5,6], [7,8,9]]
print(generate_board(board_list))

这里用join和格式化字符串自动适配列数,{num:^{cell_width}}能让数字在格子里居中显示,排版更整齐。

对你原尝试的小提醒

你之前写的board_representation有两个小问题:

  • 普通双引号的多行字符串需要用反斜杠换行,或者直接用三重引号
  • 变量不能直接写在普通字符串里,必须用F-string、str.format()或者格式化符%来嵌入

备注:内容来源于stack exchange,提问作者Mansur Azhhiiriev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 13:58:02