Python 3-在数字上标记网格并添加边框?

时间:2018-11-29 04:44:47

标签: python python-3.x

我正在尝试添加数字标签以及行和列来为程序组织游戏板。我注意到,如果我将emptyGrid = [“ OOOO”,“ OOOO”,“ OOOO”,“ OOOO”]设置为有效,但是sizeof_grid应该表示用户输入的任何值,因此我无法真正使emptygrid等于到设定的网格大小。话虽如此,当emptygrid = []时,我无法让程序显示网格标签。当我用当前程序执行此操作时,它什么也不会打印出来。

sizeof_grid = 4
emptyGrid = []

def initialize_board():
    start_board=[["O" for i in range(sizeof_grid)] for i in 
range(sizeof_grid)]
    return start_board

def players_board(grid): 
    for i in range(len(grid)): 
        print(str(i) + "|" + grid[i])
print(players_board(emptyGrid))

我希望代码输出如下内容:

| 01234

0 | OOOOO

1 | OOOOO

2 | OOOOO

3 | OOOOO

4 | OOOOO

(每行之间没有空格)

1 个答案:

答案 0 :(得分:1)

您的代码中有一些错误。您不会调用initialize_board函数。另外,players_board函数中还有一些错误。

修改后的代码(带有更改的行带有注释,以解释更改):

sizeof_grid = 4
emptyGrid = []

def initialize_board():
    start_board = [["O" for i in range(sizeof_grid)] for i in 
range(sizeof_grid)]
    return start_board

def players_board(grid):
    print(" |" + "".join([str(x) for x in range(len(grid[0]))]))  # print the column numbers
    for i in range(len(grid)): 
        print(str(i) + "|" + "".join(grid[i]))  # convert the list to "" joined chars

emptyGrid = initialize_board()  # call this to initialize the board
players_board(emptyGrid)

HTH。