如何将for循环与print语句结合使用

我有一个矩阵(我没有使用 numpy):


matrix = [           

['.', '.', '.', '.', '.', '.', '.'],

['.', '.', '.', '.', '.', '.', '.'],

['.', '.', '.', '.', '.', '.', '.'],

['.', '.', '.', '.', '.', '.', '.'],

['.', '.', '.', '.', '.', '.', '.'],

['.', '.', '.', '.', '.', '.', '.'],

['.', '.', '.', '.', '.', '.', '.'],   

]

我想编写一个函数,以表格形式打印这个矩阵,以便 print(function(matrix)) 显示:


. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

或任何值特定的“。” 在我的整个程序中都被替换了。


目前我有:


def printMatrix(matrix):

    for i in matrix:   

        print(' '.join(i))

但是,每次打印我的矩阵时,这只会返回 None ,因为我没有给函数任何返回值。我如何避免这种情况?


倚天杖
浏览 339回答 3
3回答

牛魔王的故事

您的函数已经进行了打印,print()调用它时无需使用。所以改变:print(printMatrix(matrix))只是:printMatrix(matrix)仅为副作用而调用的函数不需要返回任何内容,并且您不应尝试使用返回值。或者,您可以更改函数,使其以字符串形式返回格式化矩阵,而不是自行打印:def formatMatrix(matrix):    return "\n".join(" ".join(row) for row in matrix)print(formatMatrix(matrix))

慕尼黑8549860

matrix = [           ['.', '.', '.', '.', '.', '.', '.'],['.', '.', '.', '.', '.', '.', '.'],['.', '.', '.', '.', '.', '.', '.'],['.', '.', '.', '.', '.', '.', '.'],['.', '.', '.', '.', '.', '.', '.'],['.', '.', '.', '.', '.', '.', '.'],['.', '.', '.', '.', '.', '.', '.'],   ]for line in matrix:    print(*line, sep=' '). . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .. . . . . . .

HUWWW

或进行printMatrix以下操作:def printMatrix(matrix):    s=''    for i in matrix:           s += (' '.join(i)+'\n')    return s现在您的代码将按预期工作。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python