Добавил:
kingracer
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:ФБТ БИ 2курс / Matrix
.py
class Matrix:
def __init__(self, array):
if len(array)==0 or len(array[0])==0:
raise Exception('Bad input')
for i in range(len(array)):
if len(array[0]) != len(array[i]):
raise Exception('Bad input')
self.array = array
def __repr__(self):
matrix = ''
for i in self.array:
matrix +='|'
for k in i:
matrix += str(k).rjust(3) + '|'
matrix+='\n'
return matrix
print('Error')
def height(self):
return self.array.__len__()
def width(self):
return self.array[0].__len__()
def __add__(self, o):
matrix = []
for i in range(0,self.height()):
row=[]
for k in range(0,self.width()):
row.append(self.array[i][k] + o.array[i][k])
matrix.append(row)
return Matrix(matrix)
def __sub__(self, o):
matrix = []
for i in range(0,self.height()):
row = []
for k in range(0,self.width()):
row.append(self.array[i][k] - o.array[i][k])
matrix.append(row)
return Matrix(matrix)
def __mul__(self, o):
matrix = []
if str(o).isnumeric():
for i in range(0,self.height()):
row = []
for k in i:
row.append(k*o)
matrix.append(row)
return Matrix(matrix)
if isinstance(o, Matrix):
if self.width() == o.height():
matrix =[]
for i in range(0,self.height()):
row =[]
for k in range(0,o.width()):
summ=0
for j in range(0, self.width()):
summ+= (self.array[i][j] * o.array[j][k])
row.append(summ)
matrix.append(row)
else:
print("Oops it's Crash")
return Matrix(matrix)
Соседние файлы в папке ФБТ БИ 2курс