2017-06-24 90 views
-2

我期待在包含1-49值的3x3網格的python中創建一個板。如何在Python中創建並顯示3x3網格,顯示數字1-9?

網格中的每個數字都需要能夠被更改和替換等,所以範圍函數不能被使用。

def board(): 

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

    for i in board: 
     print(i) 

board() 

上面的代碼是我迄今管理的所有代碼。輸出顯示一個非常成熟的網格,它的格式不好。另外,如果我想讓網格更大,比如說7x7,那麼這些數字就不能正確排列。

輸出顯示以下內容:

[1, 2, 3] 

[4, 5, 6] 

[7, 8, 9] 

如何創建和顯示一個網格,看起來整潔與數字行和列排隊我能夠在網格中更改數字。

+2

你能給一個什麼樣的的 「整潔」 的定義是一個例子嗎?如果您可以提供「理想」情景的樣本輸出,這將有所幫助。此外,你是否試圖進一步採取你的代碼來試圖達到你想要達到的輸出? – idjaw

回答

2

你是什麼意思的整潔?

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

這將打印

1 2 3 
    4 5 6 
    7 8 9 
0

下面是使用list-comprehension一個襯墊:

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

輸出:

1 2 3 
4 5 6 
7 8 9 
0

使用Generator expressionjoin

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

輸出:

1  2  3 
    4 15  6 
    7  8 49