编辑代码

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 print_solution(board):
    for row in board:
        line = ['Q' if col == row else '.' for col in range(8)]
        print(' '.join(line))
    print("\n")

def eight_queens():
    board = [-1] * 8  # 每个元素表示对应行的皇后所在的列

    for row in range(8):
        for col in range(8):
            if is_safe(board, row, col):
                board[row] = col
                break

    print_solution(board)

# 调用函数解决八皇后问题
eight_queens()