Яндекс Практикум. Спринт 2. Итоговый проект.
Модуль представляет собой калькуляторы подсчёта финансов и калорий на основе записей пользователя.
Класс записей пользователя
class Record
Свойства класса записей
- amount - количество потребляемых калорий или потраченных денег;
- comment - коментарии пользователя;
- date - дата записи;
Пример создания экземпляра класса
r1 = Record(amount=122, comment='Хороший шопинг', date='09.04.2019')
Базовый класс калькулятора
class Calculator
-
Свойства класса калькулятора
- limit - максимально допустимое количество потребляемых калорий или потраченных денег;
- records - словарь, содержащий все записи пользователя;
-
Методы класса калькулятора
get_today_date()
- метод возвращает текущую дату;get_week_date()
- метод возвращает текущую неделю;add_record(record)
- метод принимает на вход новую записьrecord
и добавляет её в словарьrecords
;get_today_stats()
- метод возвращает сумму расходов на сегодня;get_week_stats()
- метод возвращает сумму расходов за неделю;get_today_limit()
- метод возвращает лимит расходов на сегодня;
Класс калькулятора денег
class CashCalculator
-
Свойства класса
- limit - максимально допустимое количество потраченных денег;
- records - словарь, содержащий все записи пользователя;
-
Константы класса
USD_RATE
- курс доллара к рублю, USD/RUB;EURO_RATE
- курс евро к рублю, EUR/RUB;
-
Методы класса
-
get_today_cash_remained(currency)
- метод принимает на входcurrency
- ключ словаряcurrencies
курсов валюты и возвращает сообщение о состоянии дневного баланса в указанной валюте, округляя значение типа float до 2 знаков после запятой:# базовая формула расчета лимит_расходов_на_сегодня / курс_валюты
-
«Указана неверная валюта. Повторите ввод.», если вводимая
currency
отсутствует вcurrencies
; -
«Денег нет, держись», если лимит достигнут;
-
«На сегодня осталось N руб/USD/Euro», если лимит
limit
не достигнут; -
«Денег нет, держись: твой долг - N руб/USD/Euro», если лимит превышен;
-
Класс калькулятора калорий
class CaloriesCalculator
-
Свойства класса
- limit - максимально допустимое количество потребляемых калорий;
- records - словарь, содержащий все записи пользователя;
-
Методы класса
get_calories_remained()
- метод возвращает сообщение, в зависимости от значенияlimit
:- «Сегодня можно съесть что-нибудь ещё, но с общей калорийностью не более N кКал», если лимит не достигнут;
- «Хватит есть!, если лимит превышен;
-
Клонировать репозиторий:
git clone https://github.com/egorcoders/hw_python_oop.git
-
Перейти в папку с проектом:
cd hw_python_oop/
-
Запустить проект локально:
# для OS Lunix и MacOS python homework.py # для OS Windows python3 homework.py