2017-06-24 1 views
-2

Ich suche eine Karte in Python mit einem 3x3 Gitter mit den Werten von 1-49 zu erstellen.Wie erstellt und zeigt man ein 3x3-Raster in Python mit den Zahlen 1-9?

Jede Nummer im Grid muss geändert und ersetzt werden können, so dass die Bereichsfunktion nicht verwendet werden kann.

def board(): 

    board = [[1,2,3], 
      [4,5,6], 
      [7,8,9]] 

    for i in board: 
     print(i) 

board() 

Der obige Code ist alles, was ich bisher geschafft habe. Die Ausgabe zeigt ein sehr amaturhaft wirkendes Raster an und es ist nicht gut formatiert. Außerdem, wenn ich das Gitter größer machen möchte, sagen wir 7x7, passen die Zahlen nicht richtig an.

Die Ausgabe zeigt die folgende:

[1, 2, 3] 

[4, 5, 6] 

[7, 8, 9] 

Wie kann ich und ein Raster angezeigt, die mit den Zahlen Schlange in Zeilen und Spalten ordentlich aussieht mit mir die Zahlen im Raster in der Lage zu ändern.

+2

Können Sie ein Beispiel geben, was Ihre Definition von "ordentlich" ist? Es wäre hilfreich, wenn Sie eine Beispielausgabe des "idealen" Szenarios bereitstellen könnten. Haben Sie außerdem versucht, Ihren Code weiter zu entwickeln, um die Ausgabe zu erreichen, die Sie erreichen möchten? – idjaw

Antwort

2

Was meinst du mit ordentlich?

def board(): 

    board = [[1,2,3], 
      [4,5,6], 
      [7,8,9]] 

    for i in board: 
     for j in i: 
     print(j, end = " ") 
     print()  

board() 

Diese

1 2 3 
    4 5 6 
    7 8 9 
0

Hier einzeiler list-comprehension Verwendung würde Druck ein:

print '\n'.join(' '.join(map(str, x)) for x in board) 

Ausgang:

1 2 3 
4 5 6 
7 8 9 
0

Generator expression mitVerwendung:

board = [[1,2,3], 
     [4,15,6], 
     [7,8,49]] 

print('\n'.join('\t'.join('{:3}'.format(item) for item in row) for row in board)) 

Ausgang:

1  2  3 
    4 15  6 
    7  8 49 
Verwandte Themen