Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
95 commits
Select commit Hold shift + click to select a range
a846e34
Add homework1.py
Elvirience Oct 10, 2021
f500be7
made some changes
Elvirience Oct 10, 2021
041fe50
full complect
Elvirience Oct 10, 2021
5f5676f
new homework
Elvirience Oct 23, 2021
85714cb
Delete .gitignore
Elvirience Oct 23, 2021
92c43d0
Delete GU_BigData_1795.iml
Elvirience Oct 23, 2021
db745c2
Delete misc.xml
Elvirience Oct 23, 2021
dca6fdd
Delete vcs.xml
Elvirience Oct 23, 2021
714e1fe
Delete homework1.py
Elvirience Oct 23, 2021
3cbe562
Delete modules.xml
Elvirience Oct 23, 2021
2df76dc
Delete profiles_settings.xml
Elvirience Oct 23, 2021
722346d
update
Elvirience Oct 23, 2021
4d6d50c
update
Elvirience Oct 23, 2021
0a469ee
updates
Elvirience Oct 24, 2021
febc091
black
Elvirience Oct 24, 2021
ec8f1a8
last update
Elvirience Oct 24, 2021
04d5d95
waiting more...
Elvirience Oct 28, 2021
d0b3b96
Delete homework1.py
Elvirience Oct 28, 2021
023156f
Delete workspace.xml
Elvirience Oct 28, 2021
f936612
Delete modules.xml
Elvirience Oct 28, 2021
dd52ce4
Delete misc.xml
Elvirience Oct 28, 2021
261fd2f
Delete homework1.iml
Elvirience Oct 28, 2021
a5edea1
Delete workspace.xml
Elvirience Oct 28, 2021
b4226bb
Delete modules.xml
Elvirience Oct 28, 2021
0cc2cf7
Delete BigData.iml
Elvirience Oct 28, 2021
874fc08
Delete misc.xml
Elvirience Oct 28, 2021
fa25d66
Delete profiles_settings.xml
Elvirience Oct 28, 2021
37555d0
Delete profiles_settings.xml
Elvirience Oct 28, 2021
5176524
Delete modules.xml
Elvirience Oct 28, 2021
a628bec
Delete homework2.py
Elvirience Oct 28, 2021
67cbd83
Delete misc.xml
Elvirience Oct 28, 2021
66e67aa
Delete homework3.py
Elvirience Oct 28, 2021
c287bdc
Delete modules.xml
Elvirience Oct 28, 2021
33d034c
Delete workspace.xml
Elvirience Oct 28, 2021
a7d8772
Delete vcs.xml
Elvirience Oct 28, 2021
49ca3a8
Delete modules.xml
Elvirience Oct 28, 2021
9f50eb7
Delete homework4.py
Elvirience Oct 28, 2021
564802c
Delete misc.xml
Elvirience Oct 28, 2021
2fc08a8
Delete .gitignore
Elvirience Oct 28, 2021
6baccb5
Delete homework2.iml
Elvirience Oct 28, 2021
32704a8
Delete .gitignore
Elvirience Oct 28, 2021
9c60ad5
Delete BigData.iml
Elvirience Oct 28, 2021
0934a6e
Delete profiles_settings.xml
Elvirience Oct 28, 2021
4bdedb2
Delete BigData.iml
Elvirience Oct 28, 2021
02fb2f5
Delete profiles_settings.xml
Elvirience Oct 28, 2021
a4bdd73
Delete misc.xml
Elvirience Oct 28, 2021
e3d57df
Delete homework4.py
Elvirience Oct 28, 2021
e87533f
Delete .gitignore
Elvirience Oct 28, 2021
a018495
update
Elvirience Oct 29, 2021
b7bc23c
news
Elvirience Oct 29, 2021
88767b1
Update homework5.py
Elvirience Oct 29, 2021
2f14c9a
Update homework5.py
Elvirience Oct 29, 2021
db9c8ee
Update homework5.py
Elvirience Oct 29, 2021
730c11e
Update homework5.py
Elvirience Oct 29, 2021
741acd9
Update homework5.py
Elvirience Oct 29, 2021
0ab0232
Update homework5.py
Elvirience Oct 29, 2021
11e2689
Update homework5.py
Elvirience Oct 29, 2021
8f820c4
Update homework5.py
Elvirience Oct 29, 2021
0527bfc
Update homework5.py
Elvirience Oct 29, 2021
4bbfe17
Update homework5.py
Elvirience Oct 29, 2021
9aad30b
Update homework5.py
Elvirience Oct 29, 2021
e231949
Update homework5.py
Elvirience Oct 29, 2021
04697f1
new file
Elvirience Oct 29, 2021
3cc5b3e
Update homework5.py
Elvirience Oct 29, 2021
3adc021
Update homework5.py
Elvirience Oct 29, 2021
3863a50
update
Elvirience Oct 29, 2021
e014743
what if
Elvirience Oct 29, 2021
d1afc82
what if
Elvirience Oct 29, 2021
38b0c40
give me time
Elvirience Nov 1, 2021
d1291e9
Delete workspace.xml
Elvirience Nov 1, 2021
5db2a50
Delete ex2.txt
Elvirience Nov 1, 2021
329e2fe
Delete ex3.txt
Elvirience Nov 1, 2021
9319ecf
Delete ex4.txt
Elvirience Nov 1, 2021
26f1b62
Delete ex6.txt
Elvirience Nov 1, 2021
3507c87
Delete ex7.txt
Elvirience Nov 1, 2021
c1604e5
Delete homework5.py
Elvirience Nov 1, 2021
86227dd
Delete ex5.txt
Elvirience Nov 1, 2021
d5e0c7c
update
Elvirience Nov 2, 2021
0ca91b6
Merge branch 'lesson6' of https://github.com/Elvirience/BigData into …
Elvirience Nov 2, 2021
aa4b998
make up changes
Elvirience Nov 2, 2021
a8cf862
Delete ex1.py
Elvirience Nov 2, 2021
446523f
some changes
Elvirience Nov 4, 2021
b1b3c2e
news
Elvirience Nov 4, 2021
d483ddb
Delete ex1.2.py
Elvirience Nov 4, 2021
f648df2
Delete ex2.py
Elvirience Nov 4, 2021
ff6be9e
Delete ex3.py
Elvirience Nov 4, 2021
25cc60b
Delete ex4.py
Elvirience Nov 4, 2021
ab29f80
Delete ex5.py
Elvirience Nov 4, 2021
45102ef
update
Elvirience Nov 4, 2021
3339dbb
corrects
Elvirience Nov 5, 2021
780bd63
final
Elvirience Nov 5, 2021
3439c5a
new files
Elvirience Nov 7, 2021
0fa686a
Delete ex1.py
Elvirience Nov 7, 2021
b12aa6d
Delete ex2.py
Elvirience Nov 7, 2021
4e8cc6d
Delete ex3.py
Elvirience Nov 7, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion README.md

This file was deleted.

35 changes: 35 additions & 0 deletions lesson8/ex1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
from datetime import date


class Data:

def __init__(self, data):
self.data = data

@classmethod
def transformer(cls, data):
lst = data.split('-')
new_lst = [int(i) for i in lst]
return cls(new_lst)

@property
def your_data(self):
return print(f'Вы ввели: {self.data}')

@staticmethod
def validity(month, year):
if 1 <= month <= 12:
pass
else:
print('Неправильный месяц')
if year != date.today().year:
print('Неактуальный год')

def __del__(self):
print('Деструктор сработал')


Data.validity(7, 2025)
b = Data.transformer('12-13-2021')
b.your_data
print(type(b.data))
18 changes: 18 additions & 0 deletions lesson8/ex2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
class MyExcept(Exception):
def __init__(self, txt):
self.txt = txt

def __del__(self):
pass


try:
a = int(input('Числитель: '))
b = int(input('Знаменатель: '))
if b == 0:
raise MyExcept('Деление на ноль!')
res = a/b
except MyExcept as error:
print(error)
else:
print(f'Ответ: {res}')
31 changes: 31 additions & 0 deletions lesson8/ex3.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
class NumeralException(Exception):
def __init__(self, txt):
self.txt = txt

def __del__(self):
pass


lst = []
i = input('Введите элемент списка: ')
while i != 'q':
try:
if i.isdigit() is True:
lst.append(int(i))
else:
"""
Если не число, то проверяю на float
Если одно из "if" не сработает, выпадет исключение
"""
check = i.split('.')
if len(check) == 2:
if check[0].isdigit() and check[1].isdigit():
lst.append(float(i))
else:
break
else:
raise(NumeralException('Вы ввели не число!'))
except NumeralException as error:
print(error)
i = input('Введите элемент списка: ')
print(lst)
141 changes: 141 additions & 0 deletions lesson8/ex456.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
class OfficeEquipment:

"""
Атрибуты, используемые в методах "warehouse", "transportation"
"""
my_dict = {}
names = []
quantities = []
prices = []

"""
По сценарию объект класса находится в оффисе, но может быть взят со склада.
В коде программы я заполнил склад и забрал оттуда нужные товары,
попутно выполнив небольшие методы классов-наследников
"""
def __init__(self, name, quantity, price):
self.name = name
self.quantity = quantity
self.price = price
print('Атрибут поступил в оффис')

def needs(self, staff):
if self.quantity < staff:
spend = self.price * (staff - self.quantity)
print(f'Необходимо закупить {self.name} на сумму {spend} руб')
else:
print('Закупки не требуются')

"""
Метод для 6-го номера
Он проверяет вводимость числа
Использовал его в методе "warehouse", контролируя данные, вводимые в реестр склада
"""
@staticmethod
def validator(parametr):
if type(parametr) is str:
while parametr.isdigit() is False:
parametr = input('Введите число!')
return int(parametr)
else:
return int(parametr)

"""
Проверяю являются ли количесвто и цена, введенные пользователем, числами
если нет, предлагаю повторить ввод
Если на складе уже есть товар с таким названием, то список с названиями остается прежним,
а количество обновляется (определяется индекс введенного названия товара в списке, где оно уже есть
и по этому индексу в списке с количествами соответствующих товаров выбирается нужное нам и складывается
с введенным)
Далее формируется словарь (реестр склада)
"""
@classmethod
def warehouse(cls, name, quantity, price):
cls.validator(quantity)
cls.validator(price)
if cls.names.count(name) >= 1:
index = cls.names.index(name)
value = cls.quantities[index]
cls.quantities[index] = value + quantity
else:
cls.names.append(name)
cls.quantities.append(quantity)
cls.prices.append(price)
cls.my_dict = {'Наименование': cls.names, 'Цена': cls.prices, 'Количество': cls.quantities}
print(f"Атрибут '{name}' вписан в реестр склада")
return cls.my_dict

"""
После пополнения склада методом "warehouse" появляется словарь (реестр) my_dict
Его значения - списки с данными (названия, количество, цена)
В методе "transportation" извлекается ключ-список по соответсвующему значению
затем проверяется, если на складе товар "name".
Если есть, то определяется индекс его названия в списке
и по этому индексу берется соотвествующее нужному товару количество.
Из количества товара на складе вычитается необходимое,
если разность при этом останется больше нуля.
Полученная разность становится в словаре "my_dict" на место прежнего значения количества,
что сопровождается соответствующим сообщением
"""
@classmethod
def transportation(cls, name, quantity):
lst = cls.my_dict.get('Наименование')
if lst.count(name) == 0:
print(f"Атрибут '{name}' отсутсвтует на складе")
else:
index = lst.index(name)
cls.quantities[index] = cls.my_dict.get('Количество')[index] - quantity
if cls.quantities[index] > 0:
cls.my_dict = {'Наименование': cls.names, 'Цена': cls.prices, 'Количество': cls.quantities}
print(f"{quantity} атрибутов '{name}' взято со склада ")
print('Реестр склада обновлен')
return cls.my_dict
else:
print(f"Атрибут {name} закончился")

def __del__(self):
pass


class PC(OfficeEquipment):
def __init__(self, name, quantity, price, os):
super().__init__(name, quantity, price)
self.os = os

@classmethod
def os_choice(cls):
cls.os = input('Введите название ОС: ')
print('Вы перешли на новую операционную систему')
return cls.os


class Printer(OfficeEquipment):
def __init__(self, name, quantity, price, paper):
super().__init__(name, quantity, price)
self.paper = paper

def condition(self):
if self.paper is False:
print('Нужна бумага')
else:
pass


class Cartridge(OfficeEquipment):
@property
def condition(self):
if self.quantity < 20:
print('Нужно больше картриджей')
else:
pass


a = OfficeEquipment.warehouse('PC', 325, 526436)
b = OfficeEquipment.warehouse('Принтер', 214, 5264)
c = OfficeEquipment.warehouse('PC', 325, 526436)
print(OfficeEquipment.my_dict)
d = OfficeEquipment.transportation('PC', 20)
e = PC('laptop', 2134, 200000, 'windows')
e = PC.os_choice()
e = PC.warehouse('laptop', 2134, 200000)
e = PC.transportation('laptop', 1)
24 changes: 24 additions & 0 deletions lesson8/ex7.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
class ComplexNumber:
def __init__(self, x, y):
self.x = x
self.y = y

def __str__(self):
return f'{self.x} + {self.y * 1j}'

def __add__(self, other):
return (self.x + other.x) + (self.y + other.y) * 1j

def __mul__(self, other):
return (self.x * other.x - self.y * other.y) + (self.x * other.y + other.x * self.y) * 1j

def __del__(self):
pass


num1 = ComplexNumber(5, 6)
print(num1)
num2 = ComplexNumber(6, 7)
print(num2)
print(num1 + num2)
print(num1 * num2)