Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将for循环与print语句结合使用_Python_Python 3.x_Function_For Loop - Fatal编程技术网

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

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

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

我想写一个函数,以表格形式打印这个矩阵,这样打印(函数(矩阵))就会显示:

. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
或者在我的整个程序中,某个特定的“.”已被替换为任何值

目前我有:

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 2
print
语法,问题被标记为Python 3。使用Python 2
print
语法,问题被标记为Python 3。