2016-11-08 3 views
0

Прошу прощения, если этот вопрос был опубликован раньше, однако, если это было, я не смог его найти. Кроме того, я не знаком с numpy. К сожалению, единственные ответы, которые я мог найти, были бесчисленными. Я бы предпочел не использовать numpy, поскольку я все еще изучаю основы кодирования/python.Печать этикеток для строк и столбцов в сетке (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 

Я думаю, я близок, но я на моем конце остроумия .. мне нужна помощь. Заранее благодарим за время и усилия, чтобы ответить на мой вопрос.

ответ

1

Для чего-то модульным (отсюда Pythonic: р):

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 
+0

Большое спасибо за это! Помогли тонну !! – Ted

Смежные вопросы