Python 如何将for循环与print语句结合使用
我有一个矩阵(我没有使用numpy): 我想写一个函数,以表格形式打印这个矩阵,这样打印(函数(矩阵))就会显示:Python 如何将for循环与print语句结合使用,python,python-3.x,function,for-loop,Python,Python 3.x,Function,For Loop,我有一个矩阵(我没有使用numpy): 我想写一个函数,以表格形式打印这个矩阵,这样打印(函数(矩阵))就会显示: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 或者在我的整个程序中,某个特定的“.”已被替换为任何值 目前我有: def printMatrix(matrix): for i in matrix: print(' '.join(i
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
或者在我的整个程序中,某个特定的“.”已被替换为任何值
目前我有:
def printMatrix(matrix):
for i in matrix:
print(' '.join(i))
但是,每次打印矩阵时,它都不返回任何值,因为我没有给函数任何要返回的内容。如何避免这种情况?您的函数已经完成了打印,调用它时无需使用
print()
。因此,改变:
print(printMatrix(matrix))
只是:
printMatrix(matrix)
仅为副作用调用的函数不需要返回任何内容,您不应该尝试使用返回的值
或者,您可以更改函数,使其以字符串形式返回格式化矩阵,而不是自行打印:
def formatMatrix(matrix):
return "\n".join(" ".join(row) for row in matrix)
print(formatMatrix(matrix))
您的函数已经完成了打印,调用它时不需要使用
print()
。因此,改变:
print(printMatrix(matrix))
只是:
printMatrix(matrix)
仅为副作用调用的函数不需要返回任何内容,您不应该尝试使用返回的值
或者,您可以更改函数,使其以字符串形式返回格式化矩阵,而不是自行打印:
def formatMatrix(matrix):
return "\n".join(" ".join(row) for row in matrix)
print(formatMatrix(matrix))
我不太明白你在问题的第一部分问了什么。但第二部分很简单。您给出的示例是2D数组 代码
for row in matrix:
for r in row:
print(r, end=" ")
print ("\n")
或
我不太明白你在问题的第一部分问了什么。但第二部分很简单。您给出的示例是2D数组 代码
for row in matrix:
for r in row:
print(r, end=" ")
print ("\n")
或
[打印(*mat)矩阵中的mat]
输出:
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
[打印(*mat)矩阵中的mat]
输出:
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
或制作
printMatrix
如下:
def printMatrix(matrix):
s=''
for i in matrix:
s += (' '.join(i)+'\n')
return s
现在,您的代码将按预期工作。或制作
printMatrix
如下:
def printMatrix(matrix):
s=''
for i in matrix:
s += (' '.join(i)+'\n')
return s
现在,您的代码将按预期工作。函数在
return
语句处结束,因此for循环在返回之前只经过第一次迭代。return
立即中断函数。将返回值
放在循环中是没有意义的。为什么不在函数和循环中使用打印来构建函数呢?你目前使用return语句的方法行不通。我想你的意思是yield
,而不是return
。这仍然不会产生所需的输出,但该关键字的工作方式与您预期的大致相同,这将是一个更有趣(尽管已经回答)的问题。为什么您关心函数返回的内容?调用它只是为了输出,不需要返回值。函数在return
语句处结束,因此for循环在返回之前只经过第一次迭代。return
立即中断函数。将返回值
放在循环中是没有意义的。为什么不在函数和循环中使用打印来构建函数呢?你目前使用return语句的方法行不通。我想你的意思是yield
,而不是return
。这仍然不会产生所需的输出,但该关键字的工作方式与您预期的大致相同,这将是一个更有趣(尽管已经回答)的问题。为什么您关心函数返回的内容?调用它只是为了输出,不需要返回值。使用Python 2print
语法,问题被标记为Python 3。使用Python 2print
语法,问题被标记为Python 3。