Dmitry Telenkov 1 year ago
parent
commit
cf589184e1

BIN
books/python/__pycache__/coin.cpython-38.pyc


BIN
books/python/__pycache__/misc_class.cpython-38.pyc


+ 37 - 0
books/python/main.py

@@ -0,0 +1,37 @@
+import misc_class
+
+
+def coin_test():
+    my_coin = misc_class.Coin()
+
+    print('Эта сторона обращена вверх:', my_coin.get_sideup())
+
+    # Подбросить монету
+    print('Сибираюсь подбросить монету 10 раз:')
+    for _ in range(10):
+        my_coin.toss()
+        print(my_coin.get_sideup())
+
+def bankaccount_test():
+    start_bal = 100.5
+    savings = misc_class.BankAccaunt(start_bal)
+    print(f'Остаток составляет ${savings.get_balance():,.2f}')
+    savings.deposit(50.0)
+
+    # Здесь будет вызван метод __str__
+    print(savings)  
+
+    savings.withdraw(75.4)
+
+    # Здесь тоже будет вызван метод __str__, но через str()
+    print(str(savings))    
+
+    
+
+
+def main():
+    # coin_test()    
+    bankaccount_test()
+
+if __name__ == '__main__':
+    main()

+ 57 - 0
books/python/misc_class.py

@@ -0,0 +1,57 @@
+import random
+
+# Класс Coin имитирует монету, которую
+# можно подбрасывать (теперь это модуль, который хранится в файле).
+
+class Coin:
+
+    # Метод __init__ инициализирует
+    # атрибут данных __sideup значением 'Орел'.
+
+    def __init__(self) -> None:
+        self.__sideup = 'Орел'
+
+    # Метод toss генерирует случайное число
+    # в диапазоне от 0 до 1. Если это число
+    # равно 0, то __sideup получает значение 'Орел'.
+    # В противном случае sideup получает значение 'Решка'.
+        
+    def toss(self):
+        if random.randint(0, 1) == 0:
+            self.__sideup = 'Орел'
+        else:
+            self.__sideup = 'Решка'
+
+    def get_sideup(self):
+        return self.__sideup
+    
+    
+
+# Класс BankAccount имитирует банковский счет.
+    
+class BankAccaunt:
+
+    # Метод __init__ принимает аргумент
+    # с остатком на счете.
+    # Он присваивается атрибуту __balance.
+
+    def __init__(self, bal) -> None:
+        self.__balance = bal
+
+    # Метод __str__ вызывается не напрямую, а автоматически
+    # во время передачи объекта в качестве аргумента в функцию print
+
+    def __str__(self) -> str:
+        return f'Остаток составляет: ${self.__balance:,.2f}'
+
+    def deposit(self, amount):
+        self.__balance += amount
+
+    def withdraw(self, amount):
+        if self.__balance >= amount:
+            self.__balance -= amount
+        else:
+            print('Ошибка: недостаточно средств')
+
+    def get_balance(self):
+        return self.__balance