如何在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
相关产品推荐
相关产品推荐

