В исследовательской работе показано практическое применение языка Python, интерпретируемого языка программирования, который может применяться для сложной обработки данных, машинного обучения и веб-разработки. Благодаря простоте изучения и понимания, Python является идеальным языком для новичков. Возможности программирования на Python растут по мере расширения использования языка.
Александр СИВАКОВ,
учитель физики и информатики
ГУО «Смольянская средняя школа Оршанского района»,
Витебская область
Заинтересованность языком программирования Python возникла, когда мы обратили внимание на сложности перевода физических величин в СИ у многих учащихся при решении задач по физике. Тогда и задумались: почему бы не создать приложение, которое поможет протестировать в начале урока учащихся. Они, в свою очередь, сразу по прохождении теста увидят свой результат.
Основные цели работы: разработка приложения для уроков физики по теме «Перевод физических величин в СИ» на языке программирования Python.
Для достижения целей поставлены следующие задачи:
– продолжить изучение языка программирования Python;
– изучить основы объектно-ориентированного программирования;
– понять принцип работы библиотек Python tkinter и CustomTkinter;
– изучить алгоритмы создания приложений;
– разработать приложение в Python.
Гипотеза: создать приложение по физике «Перевод физических величин в СИ» на языке программирования Python несложно, если
– изучить особенности библиотек Python tkinter и CustomTkinter;
– узнать основные принципы работы объектно-ориентированного программирования, необходимые для правильной работы данного приложения.
Актуальность проблемы. Разработчики используют Python, потому что он эффективен, прост в изучении и работает на разных платформах. Программы на языке Python можно скачать бесплатно, они совместимы со всеми типами систем и повышают скорость разработки. В моей исследовательской работе я показал практическое применение языка Python. Это поможет в образовательной деятельности, учащиеся могут проверять свои знания по физике.
Объект: возможности программирования Python.
Предмет: приложение «Перевод физических величин в СИ».
Методы исследования: анализ печатных и электронных источников информации по теме; анализ методов Python; соединение созданных отдельных функций в единую программу.
Уже второй год мы изучаем Python и пока не определились, продолжать ли работу с Python или перейти на другой язык – возможно, более новый для мира программирования. Но продолжаем фокусироваться на Python по многим причинам. Python – невероятно эффективный язык: ваши программы будут выполнять больше за меньшее количество строк кода, чем потребовалось бы многим другим языкам.
Циклы, ветвления и функции – все это элементы структурного программирования.
Его возможностей вполне хватает для написания небольших, простых программ и сценариев. Однако крупные проекты часто реализуют, используя парадигму объектно-ориентированного программирования (ООП). В языке Python ООП играет ключевую роль.
В Python все объекты являются производными классов и наследуют от них атрибуты. При этом каждый объект формирует собственное пространство имен. Python поддерживает такие ключевые особенности объектно-ориентированного программирования, как наследование, инкапсуляцию и полиморфизм.
В ходе исследовательской работы мы подробно проанализировали несколько источников по интересующей нас теме, рассмотрели алгоритмы применения Python. Python – один из самых популярных языков программирования в мире.
Для того чтобы написать собственное приложение, мы проанализировали программы, найденные в интернете и литературе, и выявили алгоритмы написания похожих приложений. Подробно разобрали несколько готовых программ различных авторов, для того чтобы лучше понять тему и увидеть, как применяются базовые элементы языка Python из теоретической части на практике. Кроме того, ставили задачу выявить плюсы и минусы определённых программ для написания наиболее качественного и хорошо читаемого кода.
Для начала мы рассмотрели игру викторину на Python с сайта. https://learn4kid-python.firebaseapp.com
Вид компьютерной викторины следующий: окно приветствия и несколько вопросов, которые по очереди выводятся на экран. В программе создается функция с параметром, которая будет отображать вопросы с вариантами ответов. Вызываться эта функция будет кнопкой, в которой задана соответствующая команда.
Следующим шагом создается функция проверки ответов check(), после объявленной переменной answer, которая будет перебирать массив answer. Для сохранения и подсчета итоговых баллов создается переменную points. Баллы подсчитываются после нажатия кнопки «Далее». В завершение выводится окно с количеством набранных баллов.
Данная программа является довольно понятной и удобной, она имеет комментарии от автора. Тем не менее недостатки, на наш взгляд, имеются. При большом количестве вопросов и ответов нужно будет отдельно прописывать каждый из них в самой программе, а также на это будет потрачено много сил и времени. При написании вопросов могут возникнуть ошибки, что приведет к некорректной работе программы и поиску ошибок в коде. Для этого необходимо использовать ООП и создать класс вопросов в отдельном файле. Таким образом, данная викторина является обучающей для начала программирования на Python.
Далее была проанализирована программа следующего автора. Приложение c подключением к базе данных на Python Tkinter. Программный код в нём уже немного сложнее в восприятии. В нём используется стандартная библиотека tkinter для разработки графического интерфейса. Файл с вопросами создается в виде таблицы в базе данных. То есть для вывода вопроса программа будет обращаться к файлу базы данных. В программе создаются две функции вопросов и ответов, которые обращаются к файлу базы банных. Когда вопросы в базе данных заканчиваются, выдается соответствующее сообщение. Викторина использует графический интерфейс, что более удобно для восприятия пользователем. К недостаткам следует отнести отсутствие вывода окна итоговых результатов.
Перейдем к созданию собственного приложения.
Прежде чем мы начнем писать код на Python Tkinter, важно понять, как все работает в приложении.
Вопросы отображаются с четырьмя вариантами, из которых один является правильным ответом.
Пользователь нажимает на кнопку «Далее» после выбора ответа. Кнопка «Далее» выводит новый вопрос с новым набором ответов.
Как только программа переходит к последнему вопросу, она отображает результат. Результаты отображаются с оценкой в процентах, общим количеством правильных и неправильных ответов.
На каждом экране есть кнопка выхода на случай, если вы захотите выйти из программы.
Код написан с использованием объектно-ориентированного программирования, а имя класса – Quiz.
В коде мы создали объект, который содержит такие значения, как количество вопросов (def disp_opt(self):), заголовок окна (def disp_ques(self):), вопросы с несколькими вариантами выбора с помощью переключателя, функции окно результатов (def disp_res(self):), окно ответов (def check_ans(self, qno):), окно радио кнопок (def radio_buttons(self):)
Этот объект будет вызываться при каждом запуске программы, поэтому мы указали здесь все основные имена функций.
Мы создадим файл data.json для хранения данных.
Данные для теста определены в файле data.json с данными JSON, которые представляют собой пары имя/значение и содержат массив значений. Мы будем использовать словари Python для хранения вопросов и соответствующих им вариантов.
Процедура вызова файла вопросов и ответов:
with open(‘data.json’,encoding=’utf-8′) as file:
data = json.load(file)
Атрибут encoding=’utf-8′ необходим для правильного отображения вопросов и ответов на русском языке.
Каждый раз, когда пользователь нажимает на кнопку «Далее», на экране появляется новый вопрос.
В своей исследовательской работе мы расширили свои знания в функциональном программировании на Python.
В ходе данной исследовательской работы было показано практическое применение языка Python, что расширило кругозор авторов работы и дало знания в области информатики и физики. Мы изучили и проанализировали готовые программы и подробно описали создание своей собственной. Было создано приложение-викторина, при использовании которой учащиеся смогут проверить свои знания по переводу физических величин в СИ.
Фрагмент работы приложения
Наше приложение имеет малое количество аналогов, большая часть которых созданы в виде тестов, или презентаций. Вопросы могут быть изменены учителем и использованы в процессе обучения решения задач по физике.
Наша гипотеза о том, что создать приложение для викторины «Перевод физических величин в СИ» на Python Tkinter на языке программирования Python несложно, если изучить особенности библиотек Python tkinter и CustomTkinter и узнать основные принципы работы ООП необходимые для правильной работы данного приложения, подтвердилась.
Многие люди думают, что программирование – это сложно, но моя исследовательская работа показывает, что можно с начальными знаниями по программированию и огромным интересом создать свое небольшое приложение. На будущее мы хотим сделать мультимедийное приложение с записью вопросов и ответов в базу данных; создать администраторское и пользовательское меню с логином и паролем для каждого пользователя и показом статистики за все сеансы работы.