From f0c2076d880d75c3fdfba8ee19fa4f75497d9d00 Mon Sep 17 00:00:00 2001 From: Sergey Date: Sun, 24 Jan 2021 21:32:36 +0300 Subject: [PATCH 1/3] Init Branch Task delivery --- Untitled-1.txt | 0 task.txt | 0 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 Untitled-1.txt create mode 100644 task.txt diff --git a/Untitled-1.txt b/Untitled-1.txt new file mode 100644 index 0000000..e69de29 diff --git a/task.txt b/task.txt new file mode 100644 index 0000000..e69de29 From ec1170dc4f58c1c7740d9ed1679272162192afb7 Mon Sep 17 00:00:00 2001 From: Sergey Date: Sun, 24 Jan 2021 21:52:56 +0300 Subject: [PATCH 2/3] upd task file --- task.txt | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/task.txt b/task.txt index e69de29..7531c68 100644 --- a/task.txt +++ b/task.txt @@ -0,0 +1,19 @@ +1. Реализовать класс Matrix (матрица). Обеспечить перегрузку конструктора класса (метод __init__()), который должен принимать данные (список списков) для формирования матрицы. +Подсказка: матрица — система некоторых математических величин, расположенных в виде прямоугольной схемы. +Примеры матриц вы найдете в методичке. +Следующий шаг — реализовать перегрузку метода __str__() для вывода матрицы в привычном виде. +Далее реализовать перегрузку метода __add__() для реализации операции сложения двух объектов класса Matrix (двух матриц). Результатом сложения должна быть новая матрица. +Подсказка: сложение элементов матриц выполнять поэлементно — первый элемент первой строки первой матрицы складываем с первым элементом первой строки второй матрицы и т.д. +2. Реализовать проект расчета суммарного расхода ткани на производство одежды. Основная сущность (класс) этого проекта — одежда, которая может иметь определенное название. К типам одежды в этом проекте относятся пальто и костюм. У этих типов одежды существуют параметры: размер (для пальто) и рост (для костюма). Это могут быть обычные числа: V и H, соответственно. +Для определения расхода ткани по каждому типу одежды использовать формулы: для пальто (V/6.5 + 0.5), для костюма (2 * H + 0.3). Проверить работу этих методов на реальных данных. +Реализовать общий подсчет расхода ткани. Проверить на практике полученные на этом уроке знания: реализовать абстрактные классы для основных классов проекта, проверить на практике работу декоратора @property. +3. Реализовать программу работы с органическими клетками. Необходимо создать класс Клетка. В его конструкторе инициализировать параметр, соответствующий количеству клеток (целое число). В классе должны быть реализованы методы перегрузки арифметических операторов: сложение (__add__()), вычитание (__sub__()), умножение (__mul__()), деление (__truediv__()).Данные методы должны применяться только к клеткам и выполнять увеличение, уменьшение, умножение и обычное (не целочисленное) деление клеток, соответственно. В методе деления должно осуществляться округление значения до целого числа. +Сложение. Объединение двух клеток. При этом число ячеек общей клетки должно равняться сумме ячеек исходных двух клеток. +Вычитание. Участвуют две клетки. Операцию необходимо выполнять только если разность количества ячеек двух клеток больше нуля, иначе выводить соответствующее сообщение. +Умножение. Создается общая клетка из двух. Число ячеек общей клетки определяется как произведение количества ячеек этих двух клеток. +Деление. Создается общая клетка из двух. Число ячеек общей клетки определяется как целочисленное деление количества ячеек этих двух клеток. +В классе необходимо реализовать метод make_order(), принимающий экземпляр класса и количество ячеек в ряду. Данный метод позволяет организовать ячейки по рядам. +Метод должен возвращать строку вида *****\n*****\n*****..., где количество ячеек между \n равно переданному аргументу. Если ячеек на формирование ряда не хватает, то в последний ряд записываются все оставшиеся. +Например, количество ячеек клетки равняется 12, количество ячеек в ряду — 5. Тогда метод make_order() вернет строку: *****\n*****\n**. +Или, количество ячеек клетки равняется 15, количество ячеек в ряду — 5. Тогда метод make_order() вернет строку: *****\n*****\n*****. +Подсказка: подробный список операторов для перегрузки доступен по ссылке. From 9fe9f569c9237601f4c798743a9f0554d6792f9c Mon Sep 17 00:00:00 2001 From: Sergey Date: Thu, 28 Jan 2021 16:30:50 +0300 Subject: [PATCH 3/3] homework Update --- lesson_7_task_1.py | 0 lottery_ticket_generator.py | 44 +++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 lesson_7_task_1.py create mode 100644 lottery_ticket_generator.py diff --git a/lesson_7_task_1.py b/lesson_7_task_1.py new file mode 100644 index 0000000..e69de29 diff --git a/lottery_ticket_generator.py b/lottery_ticket_generator.py new file mode 100644 index 0000000..3a17ad7 --- /dev/null +++ b/lottery_ticket_generator.py @@ -0,0 +1,44 @@ +from random import randint +import datetime as dt +import time + +def gen_matr(): + range_nani = ((61,75), (46, 60), (31, 45), (16, 30), (1, 15), None) + matr = [] + while True: + try: + for x, y in range_nani: + row = [] + while len(row) < 5: + tmp = randint( x, y ) + if tmp not in row: + row.append( tmp ) + else: + continue + matr.append(row) + print(matr) + except TypeError: + return matr + +ticket_src = gen_matr() + +f = 6 * 5 + 3 + +def printMatr(matr_in): + for row in matr_in: + for el in row: + print(' {:4d}'.format(el), end=' ') + print() + print(str('-'*f)) + +print() +print( str( '='*f )) +bingo = list('БИНГО') +for h in bingo: + print(' {:s} '.format(h), end=" ") +print() +print( str( '—'*f )) +printMatr(tuple( zip(*ticket_src[::-1]))) +print(" ",dt.datetime.now().strftime("%d/%m/%y")," @юзернэйм ", "ЛоТТо") +print( str( '='*f )) +print()