Scientific journal
Scientific Review. Technical science
ISSN 2500-0799
ПИ №ФС77-57440

USING PYTHON TO DEVELOP A CURRENCY CONVERTER

Oshurkov A.Y. 1 Buzhinskaya N.V. 1
1 Nizhny Tagil State Socio-Pedagogical Institute (branch) of Federal State Autonomous educational institution «Russian State Vocational Pedagogical University»
2296 KB
Due to the complexity of software functions, there is an interest in various programming languages. Currently, one of the most popular programming languages is Python. Python is a high-level programming language that can be used for solving math problems, creating programs for pattern recognition, building neural networks, and so on. This article demonstrates how to use this language to create a currency Converter. With this program, you can familiarize yourself with the exchange rates of three world currencies, make conversions from RUS to USD, EUR and CNY. This article describes the steps for creating a Python Converter. At the design stage, the requirements for this program are determined, and the set of libraries and modules that will be used in the process is determined. The program development includes several stages. First, an interface is created using PyQt5, then this interface is recompiled to a file with the .py extension. At the second stage, the code is generated for each function that will be called when the corresponding buttons are clicked. The current exchange rate can be obtained from the Internet. For more convenient operation, a database has been created that stores information about the conversion results. The final stage of the work is testing, during which errors were identified and corrected.
programming
software product
Converter
database
currency
function

На современном этапе развития общества большой популярностью среди учащихся пользуются различные языки программирования, а также программные продукты, разработанные с их помощью. Одним из самых популярных языков программирования является Python. Python представляет собой высокоуровневый язык программирования, который поддерживает такие парадигмы, как императивное программирование, объектно-ориентированное, функциональное и др. [1]. Целью данного исследования является описание возможностей языка программирования Python как средства разработки программы с пользовательским интерфейсом для конвертации валют с возможностью сохранения истории действий в базе данных SQLite. Выбор данного языка для разработки нашего программного продукта объясняется не только его популярностью. В настоящее время Python активно развивается, появляются его новые версии, улучшаются и добавляются библиотеки и модули [2].

Материалы и методы исследования

В данном исследовании описан процесс реализации программы «Конвертер валют» на языке Python. Тема для разработки была выбрана таким образом, чтобы посмотреть возможности Python с разных точек зрения – работа с базой данных, с информацией в Интернете, создание дизайна.

Процесс работы включал несколько этапов:

– проектирование программного продукта, во время которого были обозначены основные направления работы;

– разработка дизайна конвертера;

– оформление внутренней логики прог- раммы;

– обработка событий;

– создание базы данных для отображения курса валют;

– подготовка файла с расширением .exe;

– оформление необходимой докумен- тации;

– тестирование программы.

Результаты исследования и их обсуждение

На этапе проектирования были определены основные требования к программе (рис. 1) [3].

ohurkov1.tif

Рис. 1. Диаграмма прецедентов

Пользователь вводит необходимую сумму. Если он хочет увидеть курс, актуальный на сегодняшний день, он нажимает кнопку «Получить курс», иначе он выбирает команду «Конвертировать» и получает интересующие его значения. Далее посмотрим процесс разработки программы на языке Python.

Структура программы представлена на рис. 2.

ohurkov2.tif

Рис. 2. Структура программы

В папке Images хранится иконка приложения. Сама база данных db.currency_convert.db хранится в общей папке с проектом, mainWindow_converter.ui интерфейс программы в XVL, который конвертирован в файл mainWindow_converter.py, файл parse_currency.py содержит код для парсинга с официального сайта Google, чтобы собирать актуальную информацию о курсе. В main.py прописана основная логика сайта.

Запустим файл main.py. Появится окно программы. При вводе необходимой суммы в рублях программа переводит ее в другую денежную единицу по курсу на сегодняшний день (рис. 3).

ohurkov3.tif

Рис. 3. Интерфейс программы

ohurkov4.tif

Рис. 4. Список подключаемых библиотек и модулей для реализации программы

Список используемых библиотек и модулей представлен на рис. 4.

Интерфейс программы создавался в PyQt5, с помощью Qt Designer. Для создания интерфейса использовались такие элементы, как groupBox, семь виджетов label, lineEdit, два виджета pushButton.

SQLite предназначена для работы с базой данных, которая отвечает за создание и поддержку базы данных для данного приложения. Библиотека sys предоставляет программисту набор функций, которые предоставляют информацию о том, как работает интерпретатор Python, взаимодействуя с операционной системой. Библиотека typing предназначена для создания аннотаций. Модель datatime предоставляет классы для обработки времени и даты разными способами. В parse_currency находится функция check_currency для получения информации с сайта Google.

На рисунке ниже изображена база данных db.currency_convert.db, которая хранит информацию о дате и времени использования конвертера, сумму в рублях для конвертирования, курс доллара, евро и конвертированные значения по курсам (рис. 5).

ohurkov5.tif

Рис. 5. База данных db.currency_convert.db

ohurkov6.tif

Рис. 6. Подключение к базе данных

ohurkov7.tif

Рис. 7. Запрос к базе данных

ohurkov8.tif

Рис. 8. Реализация функции toFixed

ohurkov9.tif

Рис. 9. Работа с переменной data

ohurkov10.tif

Рис. 10. Выполнение запроса

Далее осуществлялось подключение к базе данных (рис. 6). Если подключение завершилось с ошибкой, программа сигнализирует об этом с помощью исключения Try Except.

Затем выполняется запрос, согласно которому о переменной currencys присваивается кортеж последней записи в базе данных. Переменные получают значения актуального на сегодняшний день курса валют (рис. 7).

На рис. 8 продемонстрировано, что функция toFixed на входе получает число типа float (переменная numObj) и количество знаков после запятой (переменная digits). На выходе получаем число типа str с количеством знаков после запятой, которое было указано.

В переменную data присваивается кортеж с данными, которые нужно внести в базу данных (рис. 9).

На рис. 10 продемонстрирован пример запроса на добавление данных из переменной data в базу данных.

Затем функция на вход получает ссылку на источник с актуальным на сегодняшний день курсом, затем отправляет запрос, получает HTML-файл, обрабатывает его и возвращает курс валюты. Реализация функции на языке Python представлена на рис. 11.

ohurkov11.tif

Рис. 11. Реализация функции

ohurkov12.tif

Рис. 12. Проверка введенных пользователем данных

Кроме того, для данной функции была написана проверка, чтобы пользователь вводил только числовые значения. Если пользователь введет символ, отличный от числового значения, программа выдает ошибку. Реализация функции представлена на рис. 12.

На заключительном этапе работы было оформлено «Руководство пользователя» и проведено тестирование программы. Тестирование направлено на решение двух важнейших задач. С одной стороны, разработчику нужно показать, что программа удовлетворяет заданным требованиям к ней, а с другой – исправить все ошибки, которые были обнаружены во время внедрения программы [4; 5]. Результаты тестирование программы представлены в табл. 1–2 [6].

Таблица 1

Результаты тестирования программы. Тест-кейс № 1. Корректный

Номер

1

Заголовок

Перевод нужной суммы в рублях в другую денежную единицу

Предусловие

Программа запущена. Открыто главное окно программы. На ПК есть доступ в Интернет

Шаг

Ожидаемый результат

Ввести нужную сумму в поле «Рубли». Вводить только цифры

Ввод успешен

Нажать на кнопку «Конвертировать»

Программа выдает необходимый результат

Нажать на кнопку «Получить курс»

Программа выдает курс, актуальный на данном этапе

Таблица 2

Результаты тестирования программы. Тест-кейс № 2. Некорректный

Номер

2

Заголовок

Перевод нужной суммы в рублях в другую денежную единицу

Предусловие

Программа запущена. Открыто главное окно программы. На ПК есть доступ в Интернет

Шаг

Ожидаемый результат

Ввести нужную сумму в поле «Рубли». Вводить любую последовательность символов

Программа выдает сообщение об ошибке.

Кнопки «Конвертировать» и «Получить курс» не активны

Заключение

Данная программа может использоваться в качестве демонстрационной для объяснения обучаемым основных возможностей языка Python, а именно:

– установка различных библиотек через командную строку;

– создание базы данных и запросов к ней с помощью SQLite;

– получение нужной информации с различных сайтов;

– разработка интерфейса с помощью PyQt;

– перекомпилирование файла c расширением .ui в расширение .py.

В дальнейшем планируется добавить в данную программу визуальное отображение курсов валют с помощью библиотеки Matpolib.