没有 NumPy 的矩阵计算器 - 将参数传递给其他函数

Matrix Calculator Without NumPy - Passing Parameters to other functions

所以我正在构建一个没有 NumPy 的矩阵计算器,并且我有一个有限但有效的模型。然而,该模型非常粗糙,我想对其进行改进并扩展其功能,以便能够计算多个矩阵并相互交互(例如乘法)。

由于我对 Python 的经验非常有限,我很快 运行 遇到了一个问题,那就是在多个函数(我相信它们被调用的参数)之间传递变量。这是我拥有的:

def matrixGenerator1():
    rows = int(input("\nHow many rows are in the matrix?\n\n:"))
    columns = int(input("\nHow many columns are in the matrix?\n\n:"))
    matrix1 = [[0 for x in range(columns)] for y in range(rows)]
    for y in range(rows):
        for x in range(columns):
            matrix1[y][x] = int(input("\nWhat is the entry?\n\n:"))
    print("\nThe original matrix is...")
    for y in range(rows):
        print("\n")
        for x in range(columns):
            print(format(matrix1[y][x], "5d"), end="")
    return rows, columns, matrix1


def matrixTranspose(rows, columns, matrix1):
    print("\nThe transpose of this matrix is...")
    for y in range(rows):
        print("\n")
        for x in range(columns):
            print(format(matrix1[y][x], "5d"), end="")

matrixGenerator1()
matrixTranspose(rows, columns, matrix1)

运行 这会导致一条错误消息指出 rowscolumnsmatrix1 未定义。我意识到这些变量是 matrixGenerator 函数的局部变量,强制它们成为全局变量不是我想要接受的选项。

有没有人可以就我做错了什么向我提供一般性解释,以便我以后可以防止出现此错误?

您需要在主例程中保存第一个函数的输出。 (请注意,您已经将其归还,所以您快完成了):

rows, columns, matrix1 = matrixGenerator1()
matrixTranspose(rows, columns, matrix1)