Code academy python" Battleship" - 为什么"没有"我的网格后打印?

时间:2014-04-01 20:44:23

标签: python

这是一个快速的。任务是建立战舰" 0的样式网格。我的问题是:为什么"没有"我的网格打印后打印?我可以轻松完成任务,但是因为我这样做是为了学习代码,我想我会问。谢谢!

board = []

for x in range(5):
    board.append(["O"] * 5)  

def print_board(board):
    for row in board:
        print '---'.join(row)

print_board(board)

4 个答案:

答案 0 :(得分:3)

我猜你实际上在做:

print print_board(board)

None是因为你的函数没有返回任何内容。您可以在return 1行之外添加print '---'.join(row),但在for循环之外,然后再次执行以查看会发生什么。

[编辑] - 这个答案假设使用了python解释器。

答案 1 :(得分:2)

我正在

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

哪个似乎是对的?您拥有的代码似乎是正确的,没有额外的无打印。

答案 2 :(得分:1)

因为在Codeacademy网站上,它会自动在代码输出的末尾添加“无”,以表明没有错误。

它在所有Python教程中都这样做。

答案 3 :(得分:1)

我刚刚在Codecademy上为自己做了这个模块。我明白为什么你感到困惑,说明很混乱。

他们真的希望你这样做:

board = []

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

def print_board(board):
    for row in board:
        print " ".join(row)

"---".join(row)是一个示例,向您展示如何使用字符连接。然后左侧的说明会要求您在示例中使用" ".join(row)

Codecademy在每个输出的末尾自动打印None,没有明显的理由,如果您使用" ".join(row),则输出结果正确:

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