Ваша ошибка в том, что обратите внимание, что m[i]
- это обычный список. Мы не можем просто умножить два обычных списка вместе.
Чтобы работать только с обычным списком, мы можем получить доступ к каждому элементу, вычислить произведение и просто суммировать их.
m = []
number = int(input('Type a number for the limit of matrix:'))
for i in range(number):
line = []
for j in range(number):
line.append(int(input('Type a value for[' + str(i) +','+ str(j) +']:')))
m.append(line)
m2 = [[0]* number for i in range(number)]
for i in range(number):
for j in range(number):
m2[i][j] = sum(m[i][k] * m[k][j] for k in range(number))
for i in range(number):
print(m2[i])
В качестве альтернативы, вы можете использовать более продвинутые инструменты, такие как numpy array.
import numpy as np
m = []
number = int(input('Type a number for the limit of matrix:'))
for i in range(number):
line = []
for j in range(number):
line.append(int(input('Type a value for[' + str(i) +','+ str(j) +']:')))
m.append(line)
m = np.array(m)
print(np.dot(m, m))