如果以前发过这个问题我很抱歉,但如果是的话,我无法在任何地方找到它。而且,我不熟悉numpy。不幸的是,我能找到的唯一答案是numpy aswers。我宁愿不使用numpy,因为我还在学习编码/ python的基础知识。
我正在尝试为我的网格打印标签。我有一个简单的游戏板,我想标记列A,B,C,D和行1,2,3,4。
以下是我生成网格的代码:
def initial(): #Function that creates the 2d array and assigns it the values I want board = [] for x in range(numrows): board.append([]) for y in range(numcols): if ((x + y)%2): board[x].append('X') else: board[x].append('O')
这是输出:
O X O X X O X O O X O X
我想让输出看起来像这样:
A B C D 1 O X O X 2 X O X O 3 O X O X
我知道我必须操纵指数,而不是价值观,但就像我说的那样,我仍然是一个菜鸟。根据我在这里的内容,最好的方法是什么?对于循环和打印语句,它是否应该与创建初始网格的代码分开?或者我可以以某种方式改变我的初始游戏板代码来实现这些行/列标签?
到目前为止,我有想做这样的事情:
for r in range(numrows): # I have a variable in the code numrows = 3 if(r==0): print("1") if(r==1): print("2") if(r==2): print("3") for c in range(numcols): # also a variable numcols = 4 if(c==0): print("A") if(c==1): print("B") if(c==2): print("C") if(c==3): print("D") show_grid(board) #function that prints my board
我认为我很接近,但是我的智慧结束了......我需要帮助。提前感谢您回答我的问题所花费的时间和精力。
答案 0 :(得分:1)
对于模块化的东西(因此Pythonic:p):
columnsIndices = ['A', 'B', 'C', 'D']
rowsIndices = [1, 2, 3, 4]
print(" ", end="")
for c in columnsIndices :
print(" " + str(c), end="") #str() is useless, but it's good practice
print() #linefeed
for i in range(len(grid)) :
print(str(rowsIndices[i]), end="")
for elt in grid[i] :
print(" " + str(elt), end="")
print() #linefeed