2016-11-08 4 views
0

Ich entschuldige mich, wenn diese Frage vorher veröffentlicht wurde, aber wenn es war, konnte ich es nirgendwo finden. Ich bin auch nicht vertraut mit numpy. Leider waren die einzigen Antworten, die ich finden konnte, numply aswers. Ich würde es vorziehen, nicht numpy zu verwenden, da ich immer noch die Grundlagen des Codierens/Python lerne.Drucken Sie Etiketten für Zeilen und Spalten im Raster (PYTHON)

Ich versuche, Etiketten für mein Raster auszudrucken. Ich habe ein einfaches Spielbrett, und ich möchte die Spalten A, B, C, D und die Reihen 1,2,3,4 beschriften.

Hier ist mein Code, der das Gitter erzeugt:

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') 

Hier ist der Ausgang:

O X O X 
    X O X O 
    O X O X 

ich versuche auf meine Ausgabe wie folgt aussehen :

A B C D 
1 O X O X 
2 X O X O 
3 O X O X 

Ich weiß, dass ich die Indizes zu manipulieren, nicht die Werte, aber wie gesagt, ich bin immer noch ein noob. Was wäre der beste Weg dies zu tun, basierend auf dem, was ich hier habe? Sollte es für Schleifen und Druckanweisungen separat sein, als der Code, der das anfängliche Raster erstellt? Oder kann ich irgendwie meinen ursprünglichen Spielbrettcode ändern, um diese Zeilen-/Spaltenbeschriftungen zu implementieren?

Bisher habe ich die Idee, so etwas wie dies zu tun:

 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 

Ich glaube, ich bin in der Nähe, aber bin mit meinem Latein am Ende .. Ich brauche Hilfe. Vielen Dank im Voraus für die Zeit und den Aufwand, um meine Frage zu beantworten.

Antwort

1

Für etwas modular (daher 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 
+0

Vielen Dank dafür! Hat eine Tonne geholfen !! – Ted

Verwandte Themen