繁体   English   中英

代码学院python“战舰”-为什么在我的网格后打印“none”?

[英]Code academy python "Battleship" - why is "none" printing after my grid?

这是一个快手。 任务是构建一个“战舰”风格的 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)

我猜你实际上是在做:

print print_board(board)

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

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

我越来越

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

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

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

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

我刚刚在 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM