首页 > 解决方案 > 如何结合使用 for 循环和 print 语句

问题描述

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

matrix = [           
['.', '.', '.', '.', '.', '.', '.'],
['.', '.', '.', '.', '.', '.', '.'],
['.', '.', '.', '.', '.', '.', '.'],
['.', '.', '.', '.', '.', '.', '.'],
['.', '.', '.', '.', '.', '.', '.'],
['.', '.', '.', '.', '.', '.', '.'],
['.', '.', '.', '.', '.', '.', '.'],   
]

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

. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .

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

目前我有:

def printMatrix(matrix):
    for i in matrix:   
        print(' '.join(i))

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

标签: pythonpython-3.xfunctionfor-loop

解决方案


print()您的函数已经完成打印,调用时无需使用。所以改变:

print(printMatrix(matrix))

只是:

printMatrix(matrix)

仅针对副作用调用的函数不需要返回任何内容,并且您不应该尝试使用返回的值。

或者,您可以更改函数,使其将格式化矩阵作为字符串返回,而不是自行打印:

def formatMatrix(matrix):
    return "\n".join(" ".join(row) for row in matrix)

print(formatMatrix(matrix))

推荐阅读