簡體   English   中英

戰艦5x5網格中的行無法正確顯示

[英]rows in battleship 5x5 grid not displaying accurately

我應該在codecademy論壇上問這個問題,但是一天中可能要問的問題數量是有限的。 如果您想回答,我將不勝感激:

你好,

我編寫此代碼的目的是為了顯示所需的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

感謝您抽出寶貴的時間回復,非常感謝您的努力。

當您在Python中打印出嵌套列表時,它們全部都顯示在一行上。

每行打印一個列表,以循環瀏覽它們,以便使每個列表位於其自己的行上。

for row in board:
    print(row)

您必須迭代電路板上的列表,並一次將它們打印成一行(即一個列表),如下所示:

for item in board:
    print (item)

您似乎正在使用Python2。因此,如果您想在循環之外打印列表,則我建議您這樣做。 做這個:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM