Автор: Газимов Инсаф Рашитович
Должность: учитель физической культуры и обж
Учебное заведение: МБОУ "Смаильская СОШ им. Г.Г. Гильмутдинова"
Населённый пункт: д. Смаиль Балтасинского муниципального района
Наименование материала: Исследовательская работа
Тема: Создание телеграмм ботов на языке программирования Python
Раздел: полное образование
Муниципальное бюджетное общеобразовательное учреждение
«Средняя общеобразовательная школа им. С.А.Ахтямова
с. Манзарас»
Кукморского муниципального района Республики Татарстан
Научно-практическая конференция школьников
«Память сердца»
ТЕМА РАБОТЫ
Создание телеграмм ботов на языке программирования Python
Исследовательская работа
АВТОР:
ГИЗАТУЛЛИН КАМИЛЬ ИЛЬНУРОВИЧ
МБОУ «Смаильская СОШ»
Балтасинского района РТ, 8класс
РУКОВОДИТЕЛЬ:
ГАЗИМОВ ИНСАФ РАШИТОВИЧ
учитель
с. Манзарас
Тезисы работы
Секция II «Лицо войны»
«Точные науки в век информатизации и ИКТ»
Выполнил: Гизатуллин Камиль,
ученик 8 класса МБОУ «Смаильская СОШ»
Руководитель: Газимов Инсаф Рашитович,
учитель МБОУ «Смаильская СОШ»
Содержание
I.
Введение
3
II.
Основная часть
1.
История возникновения
2.
Язык программирования Python
3.
Что можно написать на Python
4.
Скорость работы
3
4
5
6
III.
Заключение
7
IV.
Литература
8
2
I.
Введение.
В данной работе речь пойдет о возможности языка программирования Python для
создания телеграмм ботов. Описывается история возникновения языка программирования,
указываются основные принципы работы программы.
1.
Цель исследовательской работы:
Узнать, что такое язык программирования Python, и как он используется людьми.
Задачи:
1.
Найти информацию об истории возникновения языка программирования Python
2.
Изучить принцип работы этого языка.
3.
Обобщить и проанализировать полученную информацию.
4.
Создание ботов на языке программирования Python.
Гипотеза: Предположим, что возможности язык программирования Python очень
велики на данный момент, поэтому в будущем, вероятно, он будет очень востребован.
Методы исследования: Изучение информации,
полученной из Интернета,
наблюдение, сравнение.
Объект исследования: язык программирования Python.
Предмет
исследования: Возможности
язык
программирования
Python
для
создания телеграмм ботов.
Актуальность исследования в том, что новые информационные технологии всегда
очень быстро развиваются и без них немыслимо современное общество.
Практическая значимость данного исследования заключается в том, что оно
может быть полезно в качестве просветительского материала, а также для уроков
информатики.
II. Основная часть
1.
История возникновения
Язык начал разрабатывать программист, Гвидо ван Россумом, в конце 1980-х. На
тот момент он работал в центре математики и информатике в Нидерландах.
Гвидо ван Россум увлекался работой с «железками» ещё со школьных лет, хотя он
не находил поддержки и одобрения у своих сверстников, это не помешало ему
самостоятельно разработать язык программирования.
Россум работал над Python в свободное время, в качестве основы он взял язык
программирования ABC, в разработке которого когда-то участвовал.
Этапы истории языка программирования Python:
В феврале 1991 исходный код языка был опубликован на alt.sources. Уже тогда
язык
придерживался
объектно-ориентированного
подхода,
мог
работать
с
3
классами, наследованием, функциями, обработкой исключений и всеми основными
структурами данных.
В 2000 году вышла в релиз вторая версия Python. В неё добавили много важных
инструментов, включая поддержку Юникода и сборщик мусора.
3 декабря 2008 в релиз вышла третья версия Python, которая является
основной до сих пор. Многие особенности языка были переделаны и стали
несовместимы с предыдущими версиями. И хотя функциональность третьей
версии ничем не уступает второй, развитие языка разделилось на две ветки. Кто-то
продолжал использовать Python 2, чтобы поддерживать старые проекты, кто-то
полностью перешёл на третью версию.
Дату смерти второй версии установили на 2015 год, однако, боясь не успеть перенести
весь существующий код на Python 3, время жизни Python 2 продлили жизнь до 2020
года.
2.
Язык программирования Python
Python — простой язык. Синтаксис Питона всегда выделял его на фоне других
языков программирования. Он не страдает избыточностью, схожесть синтаксиса с
обычным английским позволяет понять код даже обычному пользователю, кроме того,
программист пишет меньше строк кода, потому что нет необходимости использовать
символы: «;», «{», «}». Вложенность обозначается отступами, что повышает читаемость
кода и приучает новичков к правильному оформлению.
Простота отчасти обусловлена тем, что Питон написан на основе языка ABC, который
использовался для обучения программированию и повседневной работы людей, не
являющихся программистами.
Python сочетает в себе и простоту и мощный инструментарий. Его можно использовать
для создания прототипа практически любой программы.
Python упрощает написание кода и делает разработку быстрой, всё потому что он
обладает следующими особенностями:
Динамическая типизация. Программисту не нужно указывать тип переменных,
язык присвоит его сам. Операнды разных типов, участвующие в одной операции,
автоматически приводится к нужному по определённым правилам.
Удобный возврат нескольких значений функцией. Их можно перечислить через
запятую и они автоматически преобразуются в список. Чтобы вернуть массив из
функции, достаточно написать «return имя_массива«. Не нужно выделять память и
передавать указатели в функцию.
Автоматическое выделение памяти. Программисту не нужно самостоятельно
выделять память под что-либо. С одной стороны это уменьшает контроль
программиста над программой, с другой, разработка значительно ускоряется.
Сборщик мусора. Если объект становится бесполезным (на него перестаёт что-
либо ссылаться), он автоматически удаляется сборщиком мусора. Сборщик мусора
позволяет оптимизировано использовать память и не удалять бесполезные объекты
вручную.
a, b = b, a. Эта строка меняет местами значения переменных, теперь то, что было в
a, находится в b и наоборот. Такое возможно, потому что Питон сначала
рассматривает переменные справа от знака «=» и помещает их в список, то же он
делает с элементами слева от «=», затем он связывает каждый элемент правого
списка с левым. Таким способом можно обменивать значения не только двух
переменных, но и трёх, пяти и так далее.
Привязка типа данных. Тип данных привязан к значению, а не к переменной. То
есть значение — это какой-то объект с атрибутами, которые определяют его тип и
другие характеристики, а переменная — просто ссылка на этот объект. Такой
подход позволил обойтись без явного определения типов и значительно упростил
4
повторное присваивание значения переменной (особенно, если тип нового
значения отличен от начального).
Цикл for. Работать с массивами, списками и другими контейнерами в Питоне
просто и удобно. Когда необходимо перебрать все его элементы, конструкция
выглядит так: «for x in контейнер:» (перебор идёт от 0 до последнего элемента, его
индекс можно обозначить как -1). Если нужно, чтобы прошло определённое
количество циклов, пишут так: «for x in range (1,9):» (цикл будет выполняться со
значениями x от 1 до 8).
Интерпретируемый язык. Написанный код не нужно компилировать, достаточно
запустить его и получить результат. Более того, можно работать в интерактивном
режиме и получать результат буквально после каждой операции.
3.
Что можно написать на Python
Питон используют во многих областях программирования, поэтому на нём можно
написать что угодно.
Бот - это программа, автоматически выполняющая какие-либо действия в заданное
время или в ответ на поступивший сигнал. Боты могут примитивно симулировать
поведение человека, поэтому они часто используются для работы в технической
поддержке (чат-боты), поиска информации в интернете (поисковые боты), имитации
действий человека или другого существа в виртуальном мире (компьютерные игры).
Python позволяет быстро создавать многофункциональных и относительно умных
ботов. Важно понимать, что боты — это не простая программа в 500 строк кода. Заказ на
создание бота для бизнеса может стоить несколько миллионов. Цена обусловлена тем, что
спроектировать бота, которого будет сложно отличить от человека, очень сложно.
Необходимо
предусмотреть
множество
вариантов
диалогов,
проанализировать
поведенческие факторы человека и внедрить их в программу. Проще говоря, из машины,
понимающей только нули и единицы, нужно сделать примитивный «мозг».
Используя специальный чат бот, можно продавать практически «на автомате». В
нем вы представляете ассортимент продукции или предлагаемые услуги. Пользователь
просматривает каталог, добавляет нужные позиции в «Корзину» и оформляет заказ.
Чат-боты создают под конкретный тип деятельности.
Они должны быть
максимально понятны и удобны для клиентов. Для салона красоты, к примеру,
понадобится бот, через который можно как увидеть работу мастера на фото, так и
записаться к нему. Пиццерии с доставкой на дом нужен бот, с помощью которого можно
выбрать и заказать еду.
В Телеграм «тусовка» более тесная, чем в социальных сетях. И здесь мнение
знакомых играет крайне важную роль. Поэтому отзывы – реальные отзывы живых людей
– становятся знаком доверия и признания.
Да, не каждый отклик будет позитивным и восторженным. Но этого и не нужно.
Ведь 100% отзывов вызывают ощущение недобросовестности фирмы. Пользователи сразу
думают: негативные отзывы просто удаляют. Или «накручивают» хорошие комментарии.
Поэтому не следует пренебрегать этим способом использования Телеграм.
Именно
благодаря
простоте
этот
язык
программирования
смог
занять
доминирующее место в сфере машинного обучения. Люди, так или иначе связанные с
наукой, предпочитают не тратить много времени на такие вещи, как написание кода,
поэтому Python отлично подошёл для реализации поставленных перед ними задач.
Несмотря на то что языку уже более 29 лет, он популярен среди программистов
всего мира. Python используется почти в каждом среднем или крупном проекте, если не
как основной инструмент разработки, то как инструмент для создания прототипа или
написания какой-то его части.
5
Он собрал вокруг себя огромное сообщество разработчиков, по результатам опроса
на Stackoverflow Python занял 7 место с почти 39% голосов.
Индекс TIOBE
Этот индекс показывает популярность языков программирования, информация
обновляется
каждый
месяц.
Оценка
популярности
основывается
на
количестве
квалифицированных специалистов по всему миру. Для анализа также используются все
популярные поисковые системы. Важно понимать, что индекс не показывает лучший язык
программирования, он лишь показывает их популярность.
4.
Скорость работы
Программисты часто задаются вопросом: «Не приведёт ли использование Python к
снижению производительности?». Не стоит делать какие-либо выводы без детального
разбирательства.
Если рассматривать только скорость выполнения кода, то становится ясно, что Python
уступает другим языкам программирования, таким как C. Действительно, динамическая
типизация,
интерпретируемость
и
другие
особенности,
облегчающие
работу
программиста, приводят к ухудшению производительности.
Однако в современном IT важна не только скорость работы программ, но и
скорость их разработки. Разработка, тестирование, отладка и поддержка — всё это стоит
немалых денег. И если в скорости работы программ Python уступает, то в скорости
разработки ему нет равных.
Для любого проекта важно выбрать правильный инструмент и лучшую реализацию.
Улучшая одно, программист жертвует другим, его задача — найти идеальный баланс,
ориентируясь на конкретное техническое задание.
Python позволяет писать достаточно быстрый код, однако может подводить в
некоторых
«узких»
местах,
которые
и
оказывают
наибольшее
влияние
на
производительность всего проекта. Чтобы не затянуть разработку и получить на выходе
программу, работающую на высокой скорости, её структуру проектируют так, чтобы
соотношение «быстродействие/время разработки» было максимальным.
Программисты используют приёмы, позволяющие нивелировать недостаточную
скорость выполнения программ на Pyton:
Встраивание кода на С. С помощью такого приёма можно заметно повысить
производительность, обычно на С пишут те участки кода, которые обрабатывают
много запросов в единицу времени. Например, функцию, которая получает данные
из одной базы данных, обрабатывает их и отсылает в другую, лучше написать на
языке С, если объем проходящей информации достаточно большой.
Использование лучших алгоритмов и инструментов. Одну и ту же задачу
можно решить по-разному. Во-первых, программист должен выбрать наиболее
эффективный алгоритм, обеспечивающий лучшую производительность, например,
для поиска элемента в отсортированном массиве можно перебирать его от начала
до конца, в лучшем случае (элемент в начале массива) поиск выполнится быстро, в
худшем (элемент в конце массива) — медленно. Эффективнее использовать
методом деления пополам (двоичный поиск), который найдёт нужный элемент за
минимальное количество итерация в массиве любой длины. Во-вторых, для
реализации задачи нужно подбирать правильные инструменты. Например, если
последовательность элементов строго определена и не изменяется, лучше
использовать кортеж, а не список. Он требует меньше места, обрабатывается
быстрее и защищён от случайных изменений.
Оптимизация интерпретатора. Скорость программ на Python сильно зависит от
работы интерпретатора, одни конструкции работают быстрее, другие медленнее.
Модули для тестирования. Чтобы определить какие участки кода сильно
снижают
общую
производительность,
программист
может
использовать
6
специальные модули для тестирования. Таким образом, можно понять, какой код
нужно оптимизировать или заменить на код на языке C.
Готовые инструменты. Для большинства задач уже разработаны эффективные
решения. Лучше использовать готовый, отлаженный код какой-либо библиотеки,
чем писать своё решение с нуля, которое 100% будет не таким эффективным.
Заключение
Python — явный лидер в сфере разработки нейронных сетей. Помимо стандартных
инструментов он обзавёлся огромным количеством библиотек для машинного обучения.
Благодаря этому на Питоне можно относительно быстро написать даже большой и
сложный проект.
Python достаточно высокоуровневый язык, поэтому писать на его основе ещё один
язык программирования нецелесообразно, хотя и можно. Полезнее будет разработать
интерпретатор для самого Python или другого языка программирования. Также можно
создать компилятор (программа, конвертирующая код языка программирования в
машинный).
Подобные проекты не подойдут для коммерческих целей, но создание своего
компилятора, интерпретатора или языка даст много бесценного опыта.
7
IV.
Список литературных источников.
Лутц М. Изучаем Python, 4-е издание. – Пер. с англ. – СПб.: Символ-Плюс, 2011.
– 1280 с.
Златопольский Д.М. Основы программирования на языке Python. – М.: ДМК
Пресс, 2017. – 284 с.
Гэддис Т. Начинаем программировать на Python. – 4-е изд.: Пер. с англ. – СПб.:
БХВ-Петербург, 2019. – 768 с.
Свейгарт, Эл. Автоматизация рутиных задач с помощью Python: практическое
руководство для начинающих. Пер. с англ. — М.: Вильямc, 2016. – 592 с.
8