如何结合打印语句使用for循环

时间:2018-12-28 22:18:47

标签: python python-3.x function for-loop

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

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

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

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

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

目前,我有:

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

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

5 个答案:

答案 0 :(得分:4)

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

print(printMatrix(matrix))

只是:

printMatrix(matrix)

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

或者,您可以更改函数,使其以字符串形式返回格式化的矩阵,而不是单独打印:

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

print(formatMatrix(matrix))

答案 1 :(得分:1)

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

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


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

答案 2 :(得分:0)

我不完全理解您在问题第一部分中的要求。但是第二部分很容易。您给出的示例是2D数组。

代码

for row in matrix:
    for r in row:
        print(r, end=" ")
    print ("\n")

OR

def printmatrix (matrix):
    for row in matrix:
        for r in row:
            print(r, end=" ")
        print ("\n")

答案 3 :(得分:0)

[print(*mat) for mat in matrix]

输出:

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

答案 4 :(得分:0)

或使printMatrix如下:

def printMatrix(matrix):
    s=''
    for i in matrix:   
        s += (' '.join(i)+'\n')
    return s

现在您的代码将按预期工作。