没有 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)
运行 这会导致一条错误消息指出 rows
、columns
和 matrix1
未定义。我意识到这些变量是 matrixGenerator
函数的局部变量,强制它们成为全局变量不是我想要接受的选项。
有没有人可以就我做错了什么向我提供一般性解释,以便我以后可以防止出现此错误?
您需要在主例程中保存第一个函数的输出。 (请注意,您已经将其归还,所以您快完成了):
rows, columns, matrix1 = matrixGenerator1()
matrixTranspose(rows, columns, matrix1)
所以我正在构建一个没有 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)
运行 这会导致一条错误消息指出 rows
、columns
和 matrix1
未定义。我意识到这些变量是 matrixGenerator
函数的局部变量,强制它们成为全局变量不是我想要接受的选项。
有没有人可以就我做错了什么向我提供一般性解释,以便我以后可以防止出现此错误?
您需要在主例程中保存第一个函数的输出。 (请注意,您已经将其归还,所以您快完成了):
rows, columns, matrix1 = matrixGenerator1()
matrixTranspose(rows, columns, matrix1)