feat: add Python calculator module #40

Merged
claude-secretary merged 1 commit from baton/39-python-019ef281 into main 2026-06-23 10:28:26 +07:00

Что сделано

Добавлен модуль-калькулятор calculator.py в корне репозитория.

  • Функции add, subtract, multiply, divide с type-hints (int | float) и короткими docstring на русском.
  • divide поднимает ZeroDivisionError с понятным сообщением при делении на ноль.
  • Блок if __name__ == "__main__": с демонстрацией: add(2, 3) и divide(10, 2).
  • Добавлены юнит-тесты test_calculator.py (stdlib unittest), все 5 проходят.

Зачем

Проверка связки issue → код в репозитории: нужен настоящий исполняемый Python-код, а не markdown.

Проверка

$ python3 calculator.py
add(2, 3) = 5
divide(10, 2) = 5.0

$ python3 -m unittest test_calculator
Ran 5 tests in 0.000s — OK

Критерии приёмки

  • Файл calculator.py создан в корне.
  • Реализованы все четыре функции с type-hints и docstring.
  • divide корректно обрабатывает деление на ноль.
  • Есть демонстрационный __main__-блок.

Исходная задача: «Реализовать модуль калькулятора на Python».

Closes #39

## Что сделано Добавлен модуль-калькулятор `calculator.py` в корне репозитория. - Функции `add`, `subtract`, `multiply`, `divide` с type-hints (`int | float`) и короткими docstring на русском. - `divide` поднимает `ZeroDivisionError` с понятным сообщением при делении на ноль. - Блок `if __name__ == "__main__":` с демонстрацией: `add(2, 3)` и `divide(10, 2)`. - Добавлены юнит-тесты `test_calculator.py` (stdlib `unittest`), все 5 проходят. ## Зачем Проверка связки issue → код в репозитории: нужен настоящий исполняемый Python-код, а не markdown. ## Проверка ``` $ python3 calculator.py add(2, 3) = 5 divide(10, 2) = 5.0 $ python3 -m unittest test_calculator Ran 5 tests in 0.000s — OK ``` ## Критерии приёмки - [x] Файл `calculator.py` создан в корне. - [x] Реализованы все четыре функции с type-hints и docstring. - [x] `divide` корректно обрабатывает деление на ноль. - [x] Есть демонстрационный `__main__`-блок. Исходная задача: «Реализовать модуль калькулятора на Python». Closes #39
feat: add calculator module with basic arithmetic
All checks were successful
acceptance/all-checked Acceptance #39: все пункты отмечены
Acceptance Gate / acceptance/all-checked (pull_request) Successful in 1s
ci / check (pull_request) Successful in 3s
ci / check (push) Successful in 3s
9b87b73282
Functions add/subtract/multiply/divide with type-hints and Russian docstrings; divide raises ZeroDivisionError. Includes unit tests and a __main__ demo.
Author
Owner

Reviewer: approve

Approve. Все пункты acceptance checklist закрыты:

  1. calculator.py создан в корне репозитория.
  2. Реализованы все четыре функции (add, subtract, multiply, divide) с type-hints (через alias Number = int | float) и короткими docstring на русском.
  3. divide поднимает ZeroDivisionError("Деление на ноль недопустимо") при b == 0 — понятное сообщение.
  4. Есть if __name__ == "__main__" блок с демонстрацией add(2, 3) и divide(10, 2).

Проверил локально:

  • python3 -m unittest test_calculator -v → 5 tests OK (бонусом добавлен test_calculator.py, покрывающий все функции и деление на ноль).
  • python3 calculator.pyadd(2, 3) = 5, divide(10, 2) = 5.0.

Код читаем, следует конвенциям, security-проблем нет, изменений за пределами scope нет. Тесты покрывают новый код.

## Reviewer: approve ✅ Approve. Все пункты acceptance checklist закрыты: 1. ✅ `calculator.py` создан в корне репозитория. 2. ✅ Реализованы все четыре функции (`add`, `subtract`, `multiply`, `divide`) с type-hints (через alias `Number = int | float`) и короткими docstring на русском. 3. ✅ `divide` поднимает `ZeroDivisionError("Деление на ноль недопустимо")` при `b == 0` — понятное сообщение. 4. ✅ Есть `if __name__ == "__main__"` блок с демонстрацией `add(2, 3)` и `divide(10, 2)`. Проверил локально: - `python3 -m unittest test_calculator -v` → 5 tests OK (бонусом добавлен test_calculator.py, покрывающий все функции и деление на ноль). - `python3 calculator.py` → `add(2, 3) = 5`, `divide(10, 2) = 5.0`. Код читаем, следует конвенциям, security-проблем нет, изменений за пределами scope нет. Тесты покрывают новый код.
claude-secretary deleted branch baton/39-python-019ef281 2026-06-23 10:28:26 +07:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
senokosov/baton-dogfood!40
No description provided.