私がPythonを学び始めたときに見つけた1つの簡単な質問。私はこの出力が独特であることが分かります。私は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))
(I、使用)pycharmに出力される。
[0,0]、[0,0]
[16、0]、[0、あなたが再ために、2つの異なるリストを使用matrix=[[0,0],[0,0]]
で0]]
[[0,0]、[0,0]]
[[16、0]、[16、0]]
matrixcreatorでインデントを修正して、それが何であるかを確認できますか?これが示すように、エラーが発生します。 –
"なぜ 'matrixmultiplicator'のベクトルが同じではないのですか?"同じものは何ですか?その結果はどうなると思いますか? –
コードをデバッグする方法を学ぶことをお勧めします。 PyCharmなどのIDEから 'print()'ステートメントを追加したり、デバッガを使用することができます。いずれにしても、プログラム内の変数の値を表示し、それらが期待しているものと異なる場所を特定する必要があります。それから、なぜ彼らがあなたが期待しているものと違うのかを理解する必要があります。 –