|
@@ -139,7 +139,7 @@ class Money:
|
|
|
def cents(self, value):
|
|
|
if not isinstance(value, (int)):
|
|
|
print("Error cents")
|
|
|
- elif value < 0 or value > 100:
|
|
|
+ elif value < 0 or value >= 100:
|
|
|
print("Error cents")
|
|
|
else:
|
|
|
self.total_cents = (self.total_cents//100)*100 + value
|
|
@@ -148,13 +148,127 @@ class Money:
|
|
|
return f"Ваше состояние составляет {self.total_cents//100} долларов {self.total_cents%100} центов"
|
|
|
|
|
|
|
|
|
+"""Вычисляемые войства"""
|
|
|
+
|
|
|
+class Square:
|
|
|
+ def __init__(self, a) -> None:
|
|
|
+ self.__side = a
|
|
|
+ self.__area = None
|
|
|
+ self.__perimeter = None
|
|
|
+
|
|
|
+ @property
|
|
|
+ def side(self):
|
|
|
+ return self.__side
|
|
|
+
|
|
|
+ @side.setter
|
|
|
+ def side(self, value):
|
|
|
+ self.__side = value
|
|
|
+ self.__area = None
|
|
|
+ self.__perimeter = None
|
|
|
+
|
|
|
+ @property
|
|
|
+ def area(self):
|
|
|
+ if self.__area == None:
|
|
|
+ print('calculate area')
|
|
|
+ self.__area = self.__side**2
|
|
|
+ return self.__area
|
|
|
+
|
|
|
+ @property
|
|
|
+ def perimeter(self):
|
|
|
+ if self.__perimeter == None:
|
|
|
+ print('calculate perimeter')
|
|
|
+ self.__perimeter = self.__side*4
|
|
|
+ return self.__perimeter
|
|
|
+
|
|
|
+
|
|
|
+class Rectangle:
|
|
|
+ def __init__(self, length, width):
|
|
|
+ self.__length = length
|
|
|
+ self.__width = width
|
|
|
+ self.__area = None
|
|
|
+
|
|
|
+ @property
|
|
|
+ def area(self):
|
|
|
+ if self.__area == None:
|
|
|
+ self.__area = self.__length*self.__width
|
|
|
+ return self.__area
|
|
|
+
|
|
|
+
|
|
|
+class Date:
|
|
|
+
|
|
|
+ def __init__(self, day, month, year) -> None:
|
|
|
+ self.day = day
|
|
|
+ self.month = month
|
|
|
+ self.year = year
|
|
|
+
|
|
|
+ @property
|
|
|
+ def date(self):
|
|
|
+ return "%02d/%02d/%04d" % (self.day, self.month, self.year)
|
|
|
+
|
|
|
+ @property
|
|
|
+ def usa_date(self):
|
|
|
+ return "%02d-%02d-%04d" % (self.month, self.day, self.year)
|
|
|
+
|
|
|
+
|
|
|
+class Password:
|
|
|
+
|
|
|
+ def __init__(self, password) -> None:
|
|
|
+ self.__password = password
|
|
|
+
|
|
|
+ @property
|
|
|
+ def password(self):
|
|
|
+ return self.__password
|
|
|
+
|
|
|
+ @password.setter
|
|
|
+ def password(self, value):
|
|
|
+ self.__password = value
|
|
|
+
|
|
|
+ @property
|
|
|
+ def strength(self):
|
|
|
+ if len(self.password) < 8:
|
|
|
+ return "Weak"
|
|
|
+ elif len(self.password) >= 12:
|
|
|
+ return "Strong"
|
|
|
+ else:
|
|
|
+ return "Medium"
|
|
|
+
|
|
|
+
|
|
|
def main():
|
|
|
+
|
|
|
+ pass_1 = Password("Alligator34")
|
|
|
+ assert pass_1.password == "Alligator34"
|
|
|
+ assert pass_1.strength == "Medium"
|
|
|
+ assert len(pass_1.__dict__) == 1, 'У ЭК должен храниться только один атрибут'
|
|
|
+
|
|
|
+ pass_2 = Password("Alligator345678")
|
|
|
+ assert pass_2.password == "Alligator345678"
|
|
|
+ assert pass_2.strength == "Strong"
|
|
|
+ pass_1.password = "123"
|
|
|
+ assert pass_1.strength == "Weak"
|
|
|
+ assert len(pass_2.__dict__) == 1, 'У ЭК должен храниться только один атрибут'
|
|
|
+
|
|
|
+ pass_3 = Password("345678")
|
|
|
+ assert pass_3.strength == "Weak"
|
|
|
+ print('Good')
|
|
|
+ assert len(pass_3.__dict__) == 1, 'У ЭК должен храниться только один атрибут'
|
|
|
+
|
|
|
# acc = BankAccount('Ivan', 200)
|
|
|
# print(acc.my_balance)
|
|
|
|
|
|
+ '''
|
|
|
+ date = Date(3, 4, 2001)
|
|
|
+ print(date.date)
|
|
|
+ print(date.usa_date)
|
|
|
+ '''
|
|
|
+
|
|
|
+ # one_dollar = 1
|
|
|
+ # print(f"{one_dollar:05}")
|
|
|
+
|
|
|
'''
|
|
|
note = Notebook(['Buy Potato', 'Buy Carrot', 'Wash car'])
|
|
|
note.notes_list
|
|
|
+ '''
|
|
|
+
|
|
|
'''
|
|
|
bill = Money(101, 99)
|
|
|
assert isinstance(bill, Money)
|
|
@@ -186,6 +300,8 @@ def main():
|
|
|
ken.cents = 100 # Error cents
|
|
|
ken.cents = 99
|
|
|
print(ken)
|
|
|
+ '''
|
|
|
+
|
|
|
|
|
|
'''
|
|
|
box = MagicBox("rubies")
|