Codecademy战舰功能

时间:2015-12-28 01:35:40

标签: python

我应该创建一个5x5网格['O'] s。

我尝试了以下代码:

board = []
def filler(x):
  c = ['O'] * 5
  for i in c:
    board.append(i)
    print (c)
filler(c)

创建他们要求的5x5网格。我无法弄清楚为什么没有将电网添加到电路板上?

我的for循环有问题吗?我看了这个page并注意到没有人建议一个功能,这是我也不明白的。

这个功能不适合这个练习(或者只是我的功能不能正确追加?)

1 个答案:

答案 0 :(得分:3)

这不会创建5x5网格。您首先创建一个list的{​​{1}}平面,然后迭代它并将每个元素附加到棋盘上,使['O', 'O', 'O', 'O', 'O']等于board。从不使用函数中的list参数。

你应该把整件事扔掉,然后就这样做:

x

这使用嵌套的理解来创建所需大小的2D def create_board(size): return [['O' for column in range(size)] for row in range(size)] board = create_board(5)

演示:

list