/hw_python_oop

Sprint 2. Итоговый проект.

Primary LanguagePython

Модуль расчёта и отображения полной информации о тренировках по данным от блока датчиков.

Задача

Программный модуль реализован по методологии ООП для расчёта и отображения информации о прошедшей тренировке по данным от блока датчиков.

Базовый класс

class Training

Свойства класса

  • action — основное считываемое действие во время тренировки (шаг — бег, ходьба; гребок — плавание);
  • duration — длительность тренировки;
  • weight — вес спортсмена;
  • M_IN_KM = 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() — метод возвращает число потраченных калорий.
# формула расчёта
(0.035 * вес + (скорость ** 2 // рост) * 0.029 * вес) * время_тренировки_в_минутах


Класс тренировки в бассейне

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.

Инструкция для запуска проекта:

  • Клонируйте репозиторий
git clone git@github.com:Raa78/hw_python_oop.git
  • Перейдите в папку с проектом
cd hw_python_oop
  • В папке с проектом установите виртуальное окружение Windows
python -m venv имя_виртуального_окружения

например

python -m venv venv

MacOS/Unix

python3 -m venv имя_виртуального_окуржения

например

python3 -m venv venv
  • Активируйте виртуальное окружение Windows
source venv/Scripts/activate

MacOS/Unix

source venv/bin/activate

или

. venv/bin/activate
  • Установите зависимости из файла requirements.txt
pip install -r requirements.txt