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

如何在Python中正确打印数独棋盘,去除多余括号与末尾多余行

数独棋盘打印问题修复方案

问题原因

  • 输出带多余括号:你当前代码中遍历到的cell本身是包含3个元素的列表,直接打印会输出列表默认的方括号格式,需要先将列表内的元素格式化拼接后再输出。
  • 末尾多余分隔线:每遍历完一个大区块就打印分隔线的逻辑,会在最后一个区块输出结束后仍然触发一次打印,需要加判断跳过最后一个区块的分隔线输出。

修复后代码

打印部分代码:

# 提前定义分隔线,避免重复拼接
separator = '+' + '------------------+'*3
# 遍历大区块时携带索引,用来判断是否为最后一个区块
for sq_idx, sq in enumerate(board):
    for row in sq:
        print('|', end='')
        for cell in row:
            # 把cell列表内的元素转成字符串拼接,None替换为空格保证对齐
            cell_content = ' '.join(str(i) if i is not None else ' ' for i in cell)
            # 固定单元格宽度,整体排版更整齐
            print(f"{cell_content:^16}|", end='')
        print()
    # 仅非最后一个区块打印分隔线
    if sq_idx != len(board) - 1:
        print(separator)

如果需要把无值的空位换成其他占位符(比如圆点·),直接把代码里替换None的' '改成对应字符即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 07:15:03