编辑代码

def is_safe(board, row, col):
    # 检查当前位置是否安全
    # 检查列上是否有皇后
    for i in range(row):
        if board[i] == col or \
           board[i] - i == col - row or \
           board[i] + i == col + row:
            return False
    return True

def solve_queens(board, row):
    if row == 8:  # 所有行都放置好了皇后,得到一个解
        print_solution(board)
        return

    for col in range(8):
        if is_safe(board, row, col):
            board[row] = col
            solve_queens(board, row + 1)
            board[row] = -1  # 回溯,尝试其他列

def print_solution(board):
    for row in board:
        line = ['Q' if col == row else '.' for col in range(8)]
        print(' '.join(line))
    print("\n")

# 初始化棋盘
chess_board = [-1] * 8

# 调用函数解决八皇后问题
solve_queens(chess_board, 0)