Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
27
Добавлен:
10.04.2018
Размер:
2.11 Кб
Скачать

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курс