На современном этапе развития общества большой популярностью среди учащихся пользуются различные языки программирования, а также программные продукты, разработанные с их помощью. Одним из самых популярных языков программирования является Python. Python представляет собой высокоуровневый язык программирования, который поддерживает такие парадигмы, как императивное программирование, объектно-ориентированное, функциональное и др. [1]. Целью данного исследования является описание возможностей языка программирования Python как средства разработки программы с пользовательским интерфейсом для конвертации валют с возможностью сохранения истории действий в базе данных SQLite. Выбор данного языка для разработки нашего программного продукта объясняется не только его популярностью. В настоящее время Python активно развивается, появляются его новые версии, улучшаются и добавляются библиотеки и модули [2].
Материалы и методы исследования
В данном исследовании описан процесс реализации программы «Конвертер валют» на языке Python. Тема для разработки была выбрана таким образом, чтобы посмотреть возможности Python с разных точек зрения – работа с базой данных, с информацией в Интернете, создание дизайна.
Процесс работы включал несколько этапов:
– проектирование программного продукта, во время которого были обозначены основные направления работы;
– разработка дизайна конвертера;
– оформление внутренней логики прог- раммы;
– обработка событий;
– создание базы данных для отображения курса валют;
– подготовка файла с расширением .exe;
– оформление необходимой докумен- тации;
– тестирование программы.
Результаты исследования и их обсуждение
На этапе проектирования были определены основные требования к программе (рис. 1) [3].
Рис. 1. Диаграмма прецедентов
Пользователь вводит необходимую сумму. Если он хочет увидеть курс, актуальный на сегодняшний день, он нажимает кнопку «Получить курс», иначе он выбирает команду «Конвертировать» и получает интересующие его значения. Далее посмотрим процесс разработки программы на языке Python.
Структура программы представлена на рис. 2.
Рис. 2. Структура программы
В папке Images хранится иконка приложения. Сама база данных db.currency_convert.db хранится в общей папке с проектом, mainWindow_converter.ui интерфейс программы в XVL, который конвертирован в файл mainWindow_converter.py, файл parse_currency.py содержит код для парсинга с официального сайта Google, чтобы собирать актуальную информацию о курсе. В main.py прописана основная логика сайта.
Запустим файл main.py. Появится окно программы. При вводе необходимой суммы в рублях программа переводит ее в другую денежную единицу по курсу на сегодняшний день (рис. 3).
Рис. 3. Интерфейс программы
Рис. 4. Список подключаемых библиотек и модулей для реализации программы
Список используемых библиотек и модулей представлен на рис. 4.
Интерфейс программы создавался в PyQt5, с помощью Qt Designer. Для создания интерфейса использовались такие элементы, как groupBox, семь виджетов label, lineEdit, два виджета pushButton.
SQLite предназначена для работы с базой данных, которая отвечает за создание и поддержку базы данных для данного приложения. Библиотека sys предоставляет программисту набор функций, которые предоставляют информацию о том, как работает интерпретатор Python, взаимодействуя с операционной системой. Библиотека typing предназначена для создания аннотаций. Модель datatime предоставляет классы для обработки времени и даты разными способами. В parse_currency находится функция check_currency для получения информации с сайта Google.
На рисунке ниже изображена база данных db.currency_convert.db, которая хранит информацию о дате и времени использования конвертера, сумму в рублях для конвертирования, курс доллара, евро и конвертированные значения по курсам (рис. 5).
Рис. 5. База данных db.currency_convert.db
Рис. 6. Подключение к базе данных
Рис. 7. Запрос к базе данных
Рис. 8. Реализация функции toFixed
Рис. 9. Работа с переменной data
Рис. 10. Выполнение запроса
Далее осуществлялось подключение к базе данных (рис. 6). Если подключение завершилось с ошибкой, программа сигнализирует об этом с помощью исключения Try Except.
Затем выполняется запрос, согласно которому о переменной currencys присваивается кортеж последней записи в базе данных. Переменные получают значения актуального на сегодняшний день курса валют (рис. 7).
На рис. 8 продемонстрировано, что функция toFixed на входе получает число типа float (переменная numObj) и количество знаков после запятой (переменная digits). На выходе получаем число типа str с количеством знаков после запятой, которое было указано.
В переменную data присваивается кортеж с данными, которые нужно внести в базу данных (рис. 9).
На рис. 10 продемонстрирован пример запроса на добавление данных из переменной data в базу данных.
Затем функция на вход получает ссылку на источник с актуальным на сегодняшний день курсом, затем отправляет запрос, получает HTML-файл, обрабатывает его и возвращает курс валюты. Реализация функции на языке Python представлена на рис. 11.
Рис. 11. Реализация функции
Рис. 12. Проверка введенных пользователем данных
Кроме того, для данной функции была написана проверка, чтобы пользователь вводил только числовые значения. Если пользователь введет символ, отличный от числового значения, программа выдает ошибку. Реализация функции представлена на рис. 12.
На заключительном этапе работы было оформлено «Руководство пользователя» и проведено тестирование программы. Тестирование направлено на решение двух важнейших задач. С одной стороны, разработчику нужно показать, что программа удовлетворяет заданным требованиям к ней, а с другой – исправить все ошибки, которые были обнаружены во время внедрения программы [4; 5]. Результаты тестирование программы представлены в табл. 1–2 [6].
Таблица 1
Результаты тестирования программы. Тест-кейс № 1. Корректный
Номер |
1 |
Заголовок |
Перевод нужной суммы в рублях в другую денежную единицу |
Предусловие |
Программа запущена. Открыто главное окно программы. На ПК есть доступ в Интернет |
Шаг |
Ожидаемый результат |
Ввести нужную сумму в поле «Рубли». Вводить только цифры |
Ввод успешен |
Нажать на кнопку «Конвертировать» |
Программа выдает необходимый результат |
Нажать на кнопку «Получить курс» |
Программа выдает курс, актуальный на данном этапе |
Таблица 2
Результаты тестирования программы. Тест-кейс № 2. Некорректный
Номер |
2 |
Заголовок |
Перевод нужной суммы в рублях в другую денежную единицу |
Предусловие |
Программа запущена. Открыто главное окно программы. На ПК есть доступ в Интернет |
Шаг |
Ожидаемый результат |
Ввести нужную сумму в поле «Рубли». Вводить любую последовательность символов |
Программа выдает сообщение об ошибке. Кнопки «Конвертировать» и «Получить курс» не активны |
Заключение
Данная программа может использоваться в качестве демонстрационной для объяснения обучаемым основных возможностей языка Python, а именно:
– установка различных библиотек через командную строку;
– создание базы данных и запросов к ней с помощью SQLite;
– получение нужной информации с различных сайтов;
– разработка интерфейса с помощью PyQt;
– перекомпилирование файла c расширением .ui в расширение .py.
В дальнейшем планируется добавить в данную программу визуальное отображение курсов валют с помощью библиотеки Matpolib.