730ba2da009e7e12cd6e4d7f2bd0190c88ee6fbd
Калькулятор (Python CLI)
Лёгкий интерактивный калькулятор на чистом Python — без внешних зависимостей.
Возможности
- Операции:
+ - * /и скобки() - Приоритет операций (скобки меняют порядок)
- Унарный минус/плюс:
-5,+3 - Проценты:
50 %→0.5 - Возведение в степень:
2 ** 10 - Деление на ноль обрабатывается красиво (без падения с exception)
Структура
| Файл | Назначение |
|---|---|
calculator.py |
Парсер и вычислитель выражений |
cli.py |
Интераквная точка входа |
test_calculator.py |
Unit-тесты (pytest / unittest) |
README.md |
Это |
Запуск
Калькулятор работает на Python 3.10+ (без установки пакетов).
Интерактивный режим
python cli.py
После запуска вводите выражение, построчно:
$ python cli.py
Калькулятор. Введите выражение, 'выход'/'exit' — для завершения.
2 + 3 * (4 - 1) % 100
6
выход
Пока!
Пакетный режим (аргументы строки выражений)
python cli.py "2 + 2" "(2 + 3) * 4" "1 / 0" "2 ** 10"
4
20
Ошибка: Деление на ноль
1024
Выход из цикла
выход или exit (регистронезависимо, допускаются пробелы вокруг).
Тесты
# через pytest (рекомендуется)
python -m pytest test_calculator.py -v
# через stdlib unittest
python -m unittest test_calculator -v
Тесты покрывают:
- базовые операции и отрицательные числа;
- приоритет операций и скобки (в т.ч. вложенные);
- проценты;
- деление на ноль (raise + сообщение);
- синтаксические ошибки;
- правоассоциативность степени;
- команды выхода.