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

Python开发终端游戏时双层循环打印棋盘前缀异常如何解决

错误原因

  • create_board 中每次新增棋盘行就调用打印方法,此时10行棋盘还未完全生成,会触发多次无效打印
  • print_board 内循环逻辑错误:变量board_layout 被循环反复覆盖,且仅在所有循环结束后打印一次,最终只能取到最后一个字母J的内容,且循环嵌套逻辑导致字母和棋盘行无法对应

修正后代码

board = []
board_size = 10
alphabet = "ABCDEFGHIJ"

def create_board():
    # 先把10行棋盘全部生成完成
    for i in range(board_size):
        board.append(["."] * board_size)
    # 全部生成后再调用打印
    print_board(board)

def print_board(board):
    # 用下标匹配字母和对应棋盘行
    for index, row in enumerate(board):
        current_letter = alphabet[index]
        print(f"{current_letter}  {' '.join(row)}")

def main():
    create_board()

main()

如果习惯用计数写法,也可以调整print_board为以下形式,逻辑完全一致:

def print_board(board):
    count = 0
    while count < board_size:
        # 直接取count对应行+对应字母,不需要嵌套循环遍历整个board
        board_layout = alphabet[count] + "  " + " ".join(board[count])
        print(board_layout)
        count += 1

最终输出效果

A  . . . . . . . . . .
B  . . . . . . . . . .
C  . . . . . . . . . .
D  . . . . . . . . . .
E  . . . . . . . . . .
F  . . . . . . . . . .
G  . . . . . . . . . .
H  . . . . . . . . . .
I  . . . . . . . . . .
J  . . . . . . . . . .

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 06:15:00