From 190f3b779c9b1b5fec671a3732192e9fdb7f4bd7 Mon Sep 17 00:00:00 2001 From: geekbrains Date: Tue, 21 Apr 2020 14:58:54 +0300 Subject: [PATCH] less_7 --- less_7_home_1.py | 37 +++++++++++++++++++++++++++++++++ less_7_home_2.py | 54 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 91 insertions(+) create mode 100644 less_7_home_1.py create mode 100644 less_7_home_2.py diff --git a/less_7_home_1.py b/less_7_home_1.py new file mode 100644 index 0000000..f4e9314 --- /dev/null +++ b/less_7_home_1.py @@ -0,0 +1,37 @@ +# Реализовать класс Matrix (матрица). Обеспечить перегрузку конструктора класса (метод __ +# init__()), который должен принимать данные (список списков) для формирования матрицы. +# Следующий шаг — реализовать перегрузку метода __str__() для вывода матрицы в привычном виде. +# Далее реализовать перегрузку метода __add__() для реализации операции сложения двух объектов +# класса Matrix (двух матриц). Результатом сложения должна быть новая матрица. + +class Matrix: + def __init__(self, list_1, list_2): + self.list_1 = list_1 + self.list_2 = list_2 + + def __str__(self): + return str('\n'.join(['\t'.join([str(m) for m in i]) for i in matr])) + + def __add__(self): + matr = [[0, 0, 0], + [0, 0, 0], + [0, 0, 0]] + + for i in range(len(self.list_1)): + + for m in range(len(self.list_2[i])): + matr[i][m] = self.list_1[i][m] + self.list_2[i][m] + + return str('\n'.join(['\t'.join([str(m) for m in i]) for i in matr])) + + +my_matrix = Matrix([[5, 18, 11], + [6, 17, 23], + [41, 50, 9]], + [[45, 8, 2], + [6, 7, 93], + [24, 5, 97]]) + + +print(my_matrix.__add__()) + diff --git a/less_7_home_2.py b/less_7_home_2.py new file mode 100644 index 0000000..c817a2d --- /dev/null +++ b/less_7_home_2.py @@ -0,0 +1,54 @@ +#Реализовать проект расчета суммарного расхода ткани на производство одежды. +# Основная сущность (класс) этого проекта — одежда, которая может иметь +# определенное название. К типам одежды в этом проекте относятся пальто и костюм. +# У этих типов одежды существуют параметры: размер (для пальто) и рост (для костюма). +# Это могут быть обычные числа: V и H, соответственно. +# Для определения расхода ткани по каждому типу одежды использовать формулы: +# для пальто (V/6.5 + 0.5), для костюма (2 * H + 0.3). Проверить работу +# этих методов на реальных данных. +# Реализовать общий подсчет расхода ткани. Проверить на практике полученные +# на этом уроке знания: реализовать абстрактные классы для основных классов проекта, +# проверить на практике работу декоратора @property. + +class Textil: + def __init__(self, width, height): + self.width = width + self.height = height + + def get_square_c(self): + return self.width / 6.5 + 0.5 + + def get_square_j(self): + return self.height * 2 + 0.3 + + @property + def get_sq_full(self): + return str(f'Площадь общая ткани \n' + f' {(self.width / 6.5 + 0.5) + (self.height * 2 + 0.3)}') + + +class Coat(Textil): + def __init__(self, width, height): + super().__init__(width, height) + self.square_c = round(self.width / 6.5 + 0.5) + + def __str__(self): + return f'Площадь на пальто {self.square_c}' + + +class Jacket(Textil): + def __init__(self, width, height): + super().__init__(width, height) + self.square_j = round(self.height * 2 + 0.3) + + def __str__(self): + return f'Площадь на костюм {self.square_j}' + +coat = Coat(2, 4) +jacket = Jacket(1, 2) +print(coat) +print(jacket) +print(coat.get_sq_full) +print(jacket.get_sq_full) +print(jacket.get_square_c()) +print(jacket.get_square_j()) \ No newline at end of file