当我开始学习python时偶然发现了一个简单的问题。我觉得这个输出很奇特。我想制作一个2D计算器,但是我的'matrixcreator'函数显然会产生不同于我想的矩阵。为什么'matrixmultiplicator'的矢量不一样?感谢矩阵产生2个不同的答案
def matrixmultiplicator(matrix, vector1, vector2,):
for x in range(len(vector1)):
for y in range(len(vector2)):
matrix[0][0]=vector1[x]*vector2[y]
return matrix
def matrixcreator(x,y):
matrix=[]
list=[]
#create first dimension
for a in range(x):
matrix.insert(a,0)
#Create the second dimension
for b in range(y):
list.append(0)
for a in range(x):
matrix[a]=list
return matrix
if __name__ == '__main__':
a=[2,4]
b=[2,4]
matrix=[[0,0],[0,0]]
print(matrix)
print(matrixmultiplicator(matrix,a,b))
matrix=matrixcreator(2,2)
print(matrix)
print(matrixmultiplicator(matrix,a,b))
在pycharm输出(我使用)是:
[[0,0],[0,0]]
[[16,0],[0, 0]]
[[0,0],[0,0]]
[[16,0],[16,0]]
你可以修复matrixcreator上的缩进,以便我们可以看到它的作用?如现在所示,您会收到错误消息。 –
“为什么'matrixmultiplicator'的矢量不一样?”和什么一样?你期望的结果是什么? –
我建议你学习如何调试你的代码。您可以添加'print()'语句或使用IDE中的调试器,例如PyCharm。无论哪种方式,您都需要查看程序中变量的值,并找出它们与您期望的不同之处。那么你需要弄清楚为什么**他们与你所期望的不同。 –