https://github.com/misha7up/fitness_tracker_module
Module for calculating and displaying complete training information based on data from the sensor unit.
https://github.com/misha7up/fitness_tracker_module
oops-in-python python python3
Last synced: about 1 year ago
JSON representation
Module for calculating and displaying complete training information based on data from the sensor unit.
- Host: GitHub
- URL: https://github.com/misha7up/fitness_tracker_module
- Owner: misha7up
- Created: 2023-07-03T20:55:15.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2023-07-18T21:38:33.000Z (almost 3 years ago)
- Last Synced: 2025-01-28T11:38:11.882Z (over 1 year ago)
- Topics: oops-in-python, python, python3
- Language: Python
- Homepage:
- Size: 22.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Модуль фитнес-трекера
# Модуль расчета и отображения полной информации о тренировках по данным от блока датчиков.
## Задача
Реализовать программный модуль по методологии ООП для расчета и отображения информации
о прошедшей тренировке по данным от блока датчиков.
## Базовый класс
```python
class Training
```
### Свойства класса
* action - основное считываемое действие во время тренировке (шаг - бег, ходьба; гребок - плавание);
* duration - длительность тренировки;
* weight - вес спортсмена;
* M_IN_KM = 1000 - константа для перевода значений из метров в километры. Её значение — 1000.
* LEN_STEP - расстояние, которое спортсмен преодалевает за один шаг или гребок. Один шаг — это `0.65` метра, один гребок
при плавании — `1.38` метра.
### Методы класса
* get_distance() - метод возвращает значение дистанции приодоленной за тренировку
```python
# базовая формула расчета
шаг * LEN_STEP / M_IN_KM
```
* get_mean_speed() - метод возвращает значение средней скорости движения во время тренировки
```python
# базовая формула расчета
дистанция / длительность
```
* get_spent_calories() - метод возвращает число потраченных колорий
* show_training_info() - метод возвращает объект возвращает объект класса сообщения
## Классы наследнки
Класс беговой тренировки
```python
class Running
```
### Свойства класса
наследуюутся
### Методы класса
пререопределить метод:
* get_spent_calories() - метод возвращает число потраченных колорий
```python
# формула расчета
(18 * средняя_скорость - 20) * вес_спортсмена / M_IN_KM * время_тренировки_в_минутах
```
---
---
Класс спортивной ходьбы
```python
class SportsWalking
```
### Свойства класса
Добавляемые свойства:
* height - рост
### Методы класса
пререопределить метод:
* get_spent_calories() - метод возвращает число потраченных колорий
```python
# формула расчета
(18 * средняя_скорость - 20) * вес_спортсмена / M_IN_KM * время_тренировки_в_минутах
```
---
---
Класс тренировки в бассейне
```python
class Swimming
```
### Свойства класса
Добавляемые свойства:
* length_pool - длина бассейна
* count_pool - количество проплытых бассейнов
### Методы класса
пререопределить метод:
* get_mean_speed() - метод возвращает значение средней скорости движения во время тренировки
```python
# формула расчета
длина_бассейна * count_pool / M_IN_KM / время_тренеровки
```
* get_spent_calories() - метод возвращает число потраченных колорий
```python
# формула расчета
(скорость + 1.1) * 2 * вес
```
## Класс информационного сообщения
```python
class InfoMessage
```
### Свойства класса
* training_type - тип тренировки
* duration - длительность тренировки
* distance -дистанция приодоленная за тренировку
* speed - средняя скорость движения во время движения
* calories - потраченные за время тренировки килокалории
### Методы класса
* get_message() - метод выводит возвращает строку сообщения:
```python
# выводимое сообщение
# все значения типа float округляются до 3 знаков после запятой
'Тип тренировки: {training_type}; Длительность: {duration} ч.; Дистанция: {distance} км; Ср. скорость: {speed} км/ч; Потрачено ккал: {calories}'.
```
## Функции модуля
```python
def read_package
```
* Функция read_package принимает на вход код тренировки и список её параметров.
* Функция должна определить тип тренировки и создать объект соответствующего класса,
передав ему на вход параметры, полученные во втором аргументе. Этот объект функция должна вернуть.
---
---
```python
def main(training)
```
Функция `main()` должна принимать на вход экземпляр класса `Training`.
- При выполнении функции `main()`для этого экземпляра должен быть вызван метод `show_training_info()`;
результатом выполнения метода должен быть объект класса `InfoMessage`, его нужно сохранить в переменную `info`.
- Для объекта `InfoMessage`, сохранённого в переменной `info`, должен быть вызван метод,
который вернет строку сообщения с данными о тренировке; эту строку нужно передать в функцию `print()`.
## Инструкции по установке
***- Клонируйте репозиторий:***
```
git clone git@github.com:misha7up/fitness_tracker_module.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