Реализовать программный модуль по методологии ООП для расчета и отображения информации о прошедшей тренировке по данным от блока датчиков.
class Training- action - основное считываемое действие во время тренировке (шаг - бег, ходьба; гребок - плавание);
- duration - длительность тренировки;
- weight - вес спортсмена;
- M_IN_KM = 1000 - константа для перевода значений из метров в километры. Её значение — 1000.
- LEN_STEP - расстояние, которое спортсмен преодалевает за один шаг или гребок. Один шаг — это
0.65метра, один гребок при плавании —1.38метра.
- get_distance() - метод возвращает значение дистанции приодоленной за тренировку
# базовая формула расчета
шаг * LEN_STEP / M_IN_KM- get_mean_speed() - метод возвращает значение средней скорости движения во время тренировки
# базовая формула расчета
дистанция / длительность- get_spent_calories() - метод возвращает число потраченных колорий
- show_training_info() - метод возвращает объект возвращает объект класса сообщения
Класс беговой тренировки
class Runningнаследуюутся
пререопределить метод:
- get_spent_calories() - метод возвращает число потраченных колорий
# формула расчета
(18 * средняя_скорость - 20) * вес_спортсмена / M_IN_KM * время_тренировки_в_минутахКласс спортивной ходьбы
class SportsWalkingДобавляемые свойства:
- height - рост
пререопределить метод:
- get_spent_calories() - метод возвращает число потраченных колорий
# формула расчета
(18 * средняя_скорость - 20) * вес_спортсмена / M_IN_KM * время_тренировки_в_минутахКласс тренировки в бассейне
class SwimmingДобавляемые свойства:
- length_pool - длина бассейна
- count_pool - количество проплытых бассейнов
пререопределить метод:
- get_mean_speed() - метод возвращает значение средней скорости движения во время тренировки
# формула расчета
длина_бассейна * count_pool / M_IN_KM / время_тренеровки- get_spent_calories() - метод возвращает число потраченных колорий
# формула расчета
(скорость + 1.1) * 2 * весclass InfoMessage- training_type - тип тренировки
- duration - длительность тренировки
- distance -дистанция приодоленная за тренировку
- speed - средняя скорость движения во время движения
- calories - потраченные за время тренировки килокалории
- get_message() - метод выводит возвращает строку сообщения:
# выводимое сообщение
# все значения типа float округляются до 3 знаков после запятой
'Тип тренировки: {training_type}; Длительность: {duration} ч.; Дистанция: {distance} км; Ср. скорость: {speed} км/ч; Потрачено ккал: {calories}'.def read_package- Функция read_package принимает на вход код тренировки и список её параметров.
- Функция должна определить тип тренировки и создать объект соответствующего класса, передав ему на вход параметры, полученные во втором аргументе. Этот объект функция должна вернуть.
def main(training)Функция main() должна принимать на вход экземпляр класса Training.
- При выполнении функции
main()для этого экземпляра должен быть вызван методshow_training_info(); результатом выполнения метода должен быть объект классаInfoMessage, его нужно сохранить в переменнуюinfo. - Для объекта
InfoMessage, сохранённого в переменнойinfo, должен быть вызван метод, который вернет строку сообщения с данными о тренировке; эту строку нужно передать в функциюprint().
- Клонируйте репозиторий:
git clone [email protected]:PashkaVRN/hw_python_oop.git
- Установите и активируйте виртуальное окружение:
- для MacOS
python3 -m venv venv
- для Windows
python -m venv venv
source venv/bin/activate
source venv/Scripts/activate
- Установите зависимости из файла requirements.txt:
pip install -r requirements.txt