fork download
  1. #создай конструктор который принимает лист и создает объект матрицы
  2. #и передавай в него размеры
  3. # n - колво строк, m - столбцов
  4.  
  5. def __init__(self, elems, n, m):
  6. self.elems = [el for el in elems]
  7. self.n = n
  8. self.m = m
  9.  
  10.  
  11. #можешь еще проверять чтобы размеры совпадали и бросать исключение если не совпадают
  12.  
  13. def __add__(self, other):
  14. result = [0] * lent(self.matrix) # лист нулей такого же размера
  15. for i in range(len(self.matrix)):
  16. result[i] = self.matrix[i] + other.matrix[i]
  17.  
  18. return Matrix(result, self.n, self.m)
  19.  
  20. # можно будет обращаться к элементам matrix[i, j]
  21.  
  22. def __set__(self, index_tuple, value):
  23. i, j = index_tuple
  24. self.elems[i * self.m + j]
  25.  
  26. def __get__(self, index_tuple):
  27. return self.elems[i * self.m + j]
  28.  
  29.  
  30.  
  31. # для матрицы с двумерным массивом просто исправь на этот код
  32.  
  33. def __add__(self, other):
  34. n, m = self.size()
  35. #копируешь из self
  36. result = [i[::] for i in self.matrix]
  37. for i in range(n):
  38. for j in range(m):
  39. result = result[i][j] += other.matrix[i][j]
  40. return Matrix(result)
Runtime error #stdin #stdout #stderr 0.01s 28384KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
  File "./prog.py", line 33
    def __add__(self, other):
                            ^
IndentationError: unindent does not match any outer indentation level