Desktop-приложение на Python для автоматизации решения задач Project Euler. Основной фокус: архитектура данных, вычислительная оптимизация, кеширование, независимые процессы для стабильности интерфейса.
Пользователь может:
- выбрать задачу из списка,
- ввести входные данные,
- получить решение прямо в приложении.
Особенности:
- Современный кастомный интерфейс с анимациями панелей и кнопок.
- Вычисления выполняются в отдельном процессе, чтобы интерфейс не зависал.
- Фоновый процесс всегда активен: лёгкие задачи запускаются без ожидания.
- Возможность задать таймаут ожидания — процесс завершается автоматически, чтобы приложение не застряло навсегда.
- Поддержка кеширования результатов в JSON для ускорения повторных запусков.
- Возможность менять разрешение окна в настройках.
- Выбор одной из реализованных задач Project Euler.
- Валидация и преобразование пользовательского ввода.
- Настройка времени ожидания фонового процесса.
- Управление кешем решений (JSON).
- Просмотр истории результатов в виде таблицы (
pandas.DataFrame). - Возможность работы с массивами и списками чисел.
В form.py есть словарь input_library_with_nums. Пример записи:
from Features import MathOperations
input_library_with_nums["Сумма чисел"] = (
"Ints", # метод проверки ввода
MathOperations.sum_of_numbers, # функция из Features
("Введите число:",), # подсказки для ввода
"Сумма чисел: {reply}", # формат ответа
"Возвращает сумму чисел от 1 до n." # описание
)- Ключ проверки (
"Ints","ListInt", и т.п.) описан вCheck_methods. - Преобразование ввода управляется словарём
Type_methods.
- Все результаты сохраняются в
total.json. - Для больших результатов запись обрезается.
- Повторные вызовы возвращаются из кеша, что ускоряет работу.
- Возможность очистить кеш.
- Python 3.9+
- Установить зависимости:
pip install -r requirements.txt
Убедитесь, что установлен Python 3 и зависимости, затем выполните:
python main.py