2016-02-14 42 views
0

我應該在codecademy論壇上提出這個問題,但是在一天中可能會問的問題數量是有限制的。如果你想回答,我將不勝感激:戰列艦5x5格不準確顯示

你好,

我寫了這個代碼的意圖來顯示所需要的5x5的超級戰艦電網,

預期的電網應該是這樣的:

['O', 'O', 'O', 'O', 'O'], 
['O', 'O', 'O', 'O', 'O'], 
['O', 'O', 'O', 'O', 'O'], 
['O', 'O', 'O', 'O', 'O'], 
['O', 'O', 'O', 'O', 'O'] 

我的代碼顯示輸出是:

[['O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O']] 
None 

我不能自己糾正這個錯誤。我想要輸出正確顯示。我不知道在哪裏放置一個換行符來正確顯示這個網格。該系統是說的路要走,但實際上輸出無法正常顯示在所有:

board = [] 

#for j in range(0,5): 
for i in range(0,5): 

    board.append(["O"]*5) 
      #board.append("O") 

print board 

感謝您抽出時間回覆,我很欣賞你的努力。

回答

0

當你在Python中打印出一個嵌套列表時,它全部出現在一行上。

要在每行打印一個列表,以循環遍歷它們,以便每個列表都在自己的行上打印。

for row in board: 
    print(row) 
+0

謝謝你,我很感激 –

+0

這是一個小問題,因爲這是這樣一個小問題,但記得要給予好評/接受的答案,如果他們幫你出未來^ _^ –

+0

再次感謝大衛 –

0

你必須遍歷您的電路板內的列表,並在這樣的時刻將它們打印一行(即一個列表。):

for item in board: 
    print (item) 
0

你似乎使用Python 2。因此,我建議你做什麼,如果你想在你的循環之外打印你的列表,你試圖去做的方式。這樣做:

>>> from __future__ import print_function 
>>> print(*board, sep="\n") 
['O', 'O', 'O', 'O', 'O'] 
['O', 'O', 'O', 'O', 'O'] 
['O', 'O', 'O', 'O', 'O'] 
['O', 'O', 'O', 'O', 'O'] 
['O', 'O', 'O', 'O', 'O'] 

如果您正在使用Python 3,你並不需要從__future__進口。您可以簡單地使用print(*board, sep="\n")

完整的示例:

In [5]: from __future__ import print_function 

In [6]: 

In [6]: board = [] 

In [7]: for i in range(0,5): 
    ...: 
    ...:   board.append(["O"]*5) 
    ...: 

In [8]: print(*board, sep="\n") 
['O', 'O', 'O', 'O', 'O'] 
['O', 'O', 'O', 'O', 'O'] 
['O', 'O', 'O', 'O', 'O'] 
['O', 'O', 'O', 'O', 'O'] 
['O', 'O', 'O', 'O', 'O']