[英]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.