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

如何为8×8棋盘程序添加左右两侧1-8的数字序号

解决棋盘左右添加数字序号的问题

你的代码已经实现了棋盘上下的a-h字母标识,但在左右添加1-8数字时出现重复输出,核心原因是没有将数字与每一行一一对应,而是重复遍历了数字列表。以下是修正后的代码:

sachy = [[0, 1, 0, 1, 0, 1, 0, 1], [1, 0, 1, 0, 1, 0, 1, 0], [0, 1, 0, 1, 0, 1, 0, 1], [0, 0, 0, 0, 0, 0, 0, 0],
         [0, 0, 0, 0, 0, 0, 0, 0], [0, 2, 0, 2, 0, 2, 0, 2], [2, 0, 2, 0, 2, 0, 2, 0], [0, 2, 0, 2, 0, 2, 0, 2]]

poradi = ["a", "b", "c", "d", "e", "f", "g", "h"]
# 若需匹配国际象棋标准行号(从上到下8-1),替换为 poradi_2 = list(range(8, 0, -1))
poradi_2 = [1, 2, 3, 4, 5, 6, 7, 8]

# 打印顶部字母,预留数字位置对齐
print("  ", end="")
for prvek in poradi:
    print(prvek, end=" ")
print()

# 遍历棋盘行,同时获取行索引
for idx, seznam in enumerate(sachy):
    # 打印左侧数字
    print(poradi_2[idx], end=" ")
    # 打印棋盘内容
    for prvek in seznam:
        print(prvek, end=" ")
    # 打印右侧数字
    print(poradi_2[idx])

# 打印底部字母,预留数字位置对齐
print("  ", end="")
for prvek in poradi:
    print(prvek, end=" ")

关键修改说明

  • 顶部和底部字母前添加两个空格,与左右数字的位置对齐,保证排版整齐
  • 使用enumerate遍历棋盘行,通过行索引idx直接获取对应行的数字,避免重复遍历数字列表
  • 每行开头打印左侧数字,结尾打印右侧数字,实现左右两侧的序号标识
  • 可选:如果需要符合国际象棋棋盘的标准行号规则(从上到下为8到1),只需修改poradi_2的定义即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 08:02:02