繁体   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