17.11
This commit is contained in:
parent
45d8c51946
commit
b2b75d4334
Binary file not shown.
|
|
@ -9,17 +9,36 @@ class PointXY():
|
|||
return sqrt( (point.x - self.x) ** 2 + (point.y - self.y) ** 2)
|
||||
|
||||
def if_inside(self, r):
|
||||
if (r.a.x <= self.x <= r.b.x) and (r.a.y <= self.y <= r.b.y):
|
||||
return 'точка внутри прямоуголника'
|
||||
return 'точка вне прямоугольника'
|
||||
return (r.a.x <= self.x <= r.b.x) and (r.a.y <= self.y <= r.b.y)
|
||||
|
||||
def __str__(self):
|
||||
return 'x = ' + str(self.x) + ' y = ' + str(self.y)
|
||||
|
||||
def __eq__(self, point):
|
||||
return self.distance_to(point) == 0
|
||||
|
||||
def __ne__(self, point):
|
||||
return self.distance_to(point) != 0
|
||||
|
||||
def __add__(self, point):
|
||||
return PointXY(self.x + point.x, self.y + point.y)
|
||||
|
||||
def __mul__(self, multiplier):
|
||||
return PointXY(self.x * multiplier, self.y * multiplier)
|
||||
|
||||
def __neg__(self):
|
||||
return PointXY(-self.x, -self.y)
|
||||
|
||||
def __invert__(self):
|
||||
return PointXY(-self.x, -self.y)
|
||||
|
||||
def __abs__(self):
|
||||
return sqrt(pow(self.x, 2) + pow(self.y, 2))
|
||||
|
||||
def __init__(self, x:int, y:int):
|
||||
self.x = x
|
||||
self.y = y
|
||||
|
||||
def __str__(self):
|
||||
return 'x = ' + str(self.x) + ' y = ' + str(self.y)
|
||||
|
||||
class Rect():
|
||||
def area(self):
|
||||
return self.lenght * self.width
|
||||
|
|
@ -58,4 +77,21 @@ class Rect():
|
|||
else:
|
||||
return 'x = ' + str(self.lenght) + ' y = ' + str(self.width) + ' a(' + str(self.a.x) + ':' + str(self.a.y) + ')' + ' b(' + str(self.b.x) + ':' + str(self.b.y) + ')'
|
||||
|
||||
class Display(Rect):
|
||||
def __init__(self, diagonal, height: int, width: int):
|
||||
super().__init__(height, width)
|
||||
self.diagonal = diagonal
|
||||
self.dpi = round((sqrt(pow(self.height, 2) + pow(self.width, 2))) / self.diagonal, 2)
|
||||
|
||||
def get_dpi(self):
|
||||
return self.dpi
|
||||
|
||||
def get_pixel_num(self):
|
||||
return super().area()
|
||||
|
||||
def area(self):
|
||||
return round((self.height / self.get_dpi()) * (self.width / self.get_dpi()), 1)
|
||||
|
||||
def get_resolution_px(self):
|
||||
return self.height, self.width
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,71 @@
|
|||
class ShoppingList(dict):
|
||||
def __init__(self, data):
|
||||
return super().__init__(data)
|
||||
|
||||
def multiply(self, k: float):
|
||||
new_ingredients = self.copy()
|
||||
for key,value in new_ingredients.items():
|
||||
new_ingredients[key] = value * k
|
||||
return new_ingredients
|
||||
|
||||
def add(self, ingredients: dict):
|
||||
new_ingredients = self.copy()
|
||||
for key1,value1 in self.items():
|
||||
for key2,value2 in ingredients.items():
|
||||
if key1 == key2:
|
||||
new_ingredients[key1] = value1 + value2
|
||||
elif key2 not in new_ingredients:
|
||||
new_ingredients.update({key2: value2})
|
||||
return new_ingredients
|
||||
|
||||
def __add__(self, other):
|
||||
new_list = self.copy()
|
||||
for key1,value1 in self.items():
|
||||
for key2,value2 in other.items():
|
||||
if key1 == key2:
|
||||
new_list[key1] = value1 + value2
|
||||
break
|
||||
elif key2 not in new_list:
|
||||
new_list.update({key2: value2})
|
||||
return new_list
|
||||
|
||||
def __mul__(self, other):
|
||||
new_list = self.copy()
|
||||
for key1,value1 in self.items():
|
||||
for key2,value2 in other.items():
|
||||
if key1 == key2:
|
||||
new_list[key1] = value1 * value2
|
||||
break
|
||||
elif key2 not in new_list:
|
||||
new_list.update({key2: value2})
|
||||
return new_list
|
||||
|
||||
def multiply_ingredients(ingredients: dict, k: float) -> dict:
|
||||
new_ingredients = ingredients.copy()
|
||||
for key,value in new_ingredients.items():
|
||||
new_ingredients[key] = value * k
|
||||
return new_ingredients
|
||||
|
||||
|
||||
def add_ingredients(ingredients1: dict, ingredients2: dict) -> dict:
|
||||
new_ingredients = ingredients1.copy()
|
||||
for key1,value1 in ingredients1.items():
|
||||
for key2,value2 in ingredients2.items():
|
||||
if key1 == key2:
|
||||
new_ingredients[key1] = value1 + value2
|
||||
elif key2 not in new_ingredients:
|
||||
new_ingredients.update({key2: value2})
|
||||
return new_ingredients
|
||||
|
||||
|
||||
soup = {'onion': 1, 'potato': 2, 'water': 2.5, 'meat': 0.5}
|
||||
salad = {'potato': 2, 'meat': 0.3, 'mayonaise': 0.1, 'peas': 200}
|
||||
#soup + 2 * salad # словари так не умеют :(
|
||||
|
||||
new_soup = ShoppingList(soup)
|
||||
new_salad = ShoppingList(salad)
|
||||
|
||||
print(new_soup + new_salad)
|
||||
print(new_soup * new_salad)
|
||||
print(new_soup.add(new_salad))
|
||||
print(add_ingredients(soup, salad))
|
||||
Loading…
Reference in New Issue