-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path07-hw-01.py
49 lines (41 loc) · 2.29 KB
/
07-hw-01.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# 1) Реализовать класс Matrix (матрица). Обеспечить перегрузку конструктора класса (метод
# __init__() ), который должен принимать данные (список списков) для формирования матрицы.
# Подсказка: матрица — система некоторых математических величин, расположенных в виде
# прямоугольной схемы.
# Примеры матриц: 3 на 2, 3 на 3, 2 на 4.
# 31 22 | 3 5 32 | 3 5 8 3
# 37 43 | 2 4 6 | 8 3 7 1
# 51 86 | -1 64 -8 |
# Следующий шаг — реализовать перегрузку метода __str__() для вывода матрицы в
# привычном виде.
# Далее реализовать перегрузку метода __add__() для реализации операции сложения двух
# объектов класса Matrix (двух матриц). Результатом сложения должна быть новая матрица.
# Подсказка: сложение элементов матриц выполнять поэлементно — первый элемент первой
# строки первой матрицы складываем с первым элементом первой строки второй матрицы и т.д.
# [[31, 22], [37, 43], [51, 86]]
class Matrix:
def __init__(self, matrix):
self.matrix = matrix
def __str__(self):
for el in self.matrix:
print(*el)
print('\n')
def __add__(self, other):
new_list = []
self.new_list = new_list
i = 0
while i < len(self.matrix):
new_list.append([])
j = 0
while j < len(self.matrix[i]):
new_list[i].append(self.matrix[i][j] + other.matrix[i][j]) # , self.my_list2 + other.my_list2)
j += 1
i += 1
return Matrix(self.new_list)
m_list1 = [[11, 22], [33, 44], [55, 66]]
m_list2 = [[66, 55], [44, 33], [22, 11]]
mm1 = Matrix(m_list1)
mm2 = Matrix(m_list2)
mm1.__str__()
mm2.__str__()
print(mm1 + mm2)