Язык Python: что это такое, как использовать и где применяется

Что такое питон простыми словами

Для того чтобы понять, что такое Python нужно разобраться зачем вообще нужны языки программирования. Они нужны для взаимодействия человека и компьютера. Между собой люди общаются на естественном языке.

Что такое Python
Язык программирования Python

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

Под скриптовым языком программирования можно понимать то, что выполнение программы происходит сверху вниз построчно.

Программирование при помощи машинных кодов ускоряет программу, но очень трудоемко и требует хорошего знания архитектуры компьютера. Одним из таких низкоуровневых языков является ассемблер. Чаще всего низкоуровневое программирование используется в промышленности для специализированных контроллеров, где нет большого объема памяти.

Python может использоваться для программирования контроллеров в станках ЧПУ и в робототехнике. Популярный во всем мире одноплатный микрокомпьютер Raspberry Pi также программируется на питоне. С помощью «малинки» можно программировать роботов, умные дома, квадрокоптеры и множество других вещей. Pi в названии миникомпьютера обозначает, что программирование происходит на Python.

одноплатный микрокомпьютер Raspberry Pi
одноплатный микрокомпьютер Raspberry Pi

На языке высокого уровня нужно уметь программировать при помощи понятий, обозначаемых словами. Чаще всего это английский язык, но есть и примеры кодирования на других языках. Например, программу «Бухгалтерия 1С» можно редактировать и изменять на русском.

Питон поддерживает объектно-ориентированное программирование и является интерпретируемым языком. Это означает, что программа выполняется построчно и для ее выполнения на компьютере должен быть установлен интерпретатор. Самым распространенным и популярным интерпретатором является CPython.

История появления

Кто создал Python

Питон был задуман в еще в далеких 80 — х программистом из Голландии Гвидо ван Россумом. Создавать его Гвидо начал в 1989 году как замену языку ABC, предназначенного для обучения студентов программированию. Он создавался на энтузиазме, без бюджета и поддержки.

Создатель языка Python Guido van Rossum
Создатель языка Python Гвидо ван Россум

Работал Гвидо ван Россум по вечерам и в выходные дни. В результате за несколько недель был написан интерпретатор Python. Многие идеи были взяты из других языков программирования таких как C и ABC. В итоге из этого проекта вырос Python, входящий в тройку самых популярных языков мира.

Почему так назвали

Гвидо ван Россум был поклонником комедийного телешоу «Летающий цирк Монти Пайтона» и в честь этого английского сериала, популярного в 1970 – х годах дал название своему языку программирования Python. Этот сериал принес еще одно очень популярное сегодня слово «спам». Оно обозначает навязчивую рекламу, с которой знаком каждый.

Этапы развития Python

Публикация исходного текста Python произошла в 1991 году. Язык был относительно несложным. В нем было мало функций и интерпретатор «interpreter» тоже был небольшого размера.

Всего было 3 версии питона:

  1. Первая версия Python 1.0 увидела свет в январе 1994 года и развитие ее релизов продолжалось до 2000 года. Последним релизом стал Python 1.6.
  2. С 2000 по 2008 год развивалась его вторая версия. В это время проект был помещен на SourseForge. Это платформа, на которой расположены проекты с открытым кодом и был дан импульс к развитию языка сообществом программистов.
  3. В 2008 году вышла третья версия, которая развивается и в настоящее время. Поддержка второй версии постепенно прекращается и все большее число программистов пользуется третьей версией Python. На момент выхода статьи последней версией питона является Python 3.9.0. Третья версия языка осуществляет поддержку второй не полностью.

Как работает Python

После того, как написан код, должна произойти его обработка интерпретатором Python. Что такое обработка?

Официальный сайт Python
официальный сайт Python с интерпретатором

Для этого интерпретатор должен быть установлен на вашем компьютере. В целом обработка кода происходит в четыре этапа:

  1. Программа читается парсером и происходит анализ лексики. Где parser – это анализатор синтаксиса. В итоге получается набор лексем для дальнейшей обработки.
  2. Затем парсером из инструкций происходит генерация структуры и формирования дерева синтаксического разбора — AST.
  3. После этого компилятор преобразует AST в байт-код и отдает его на выполнение интерпретатору.
  4. Интерпретатор построчно исполняет все переданные ему инструкции.

Программу в питоне часто называют скрипт или сценарий.

Всю информацию по обработке кода можно найти в документации Python в открытом доступе.

Синтаксис питона

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

  • Конец строки обозначает завершение инструкции. Не нужно специально обозначать точкой с запятой или какими — то другими символами;
  • Для того, чтобы отделить вложенные блоки друг от друга, используется отступ при помощи табуляции. Как правило, это четыре пробела;
  • Основная инструкция заканчивается двоеточием. После нее под строкой располагается вложенная инструкция или блок с отступом в четыре пробела.

Есть еще некоторые специальные случаи, которые лучше рассмотреть отдельно.

Что есть внутри Python 3

Что такое базовые структуры данных:

  • Все объекты в питоне могут быть изменяемыми и неизменяемыми объектами. Изменяемый объект – это означает, что за любой переменной или ссылкой стоит один и тот же объект. Если изменить этот объект через любую ссылку, то по другой ссылке объект также изменится.
  • Литералом называется форма записи объекта или можно сказать, что это выражение, которое создает объект.
  • Целые числа – числа без дробной части типа int. Они не отличаются от обычных чисел и над ними можно производить любые математические операции. Для целых чисел есть поддержка длинной арифметике. Но это занимает большее количество памяти.
  • Вещественные числа – числа с дробной частью типа float. Нет поддержки длинной арифметики. Более низкая точность вычислений. Также поддерживают все атематические вычисления.
  • Комплексные числа — complex также используются и представляют собой действительную и мнимую часть. При этом не происходит автоматического преобразования комплексного числа в целое или вещественное если мнимая часть равна нулю.
  • Булевы типы чисел – могут принимать только два значения «Истина» — «True» и «Ложь» — «False». Обычно используется для сравнений или выполнения нескольких условий.
  • Строки – это последовательность символов, которая заключена в одинарные или двойные кавычки. В тройные двойные кавычки можно заключать многострочный текст. Обычно он используется как многострочный комментарий. Над строками можно производить операции сложения и умножения, строки можно склеивать. Операция склеивания строк — конкатенация. Также строки можно сравнивать и можно применять к ним различные методы.
  • Переменная в Python 3 это подпись или ярлык для области памяти. На одну и ту же область памяти указывать несколько переменных. Переменная может начинаться с буквы и включать в себя цифры и подчерки. Все буквы переменной должны быть в нижнем регистре. Семантически переменная должна содержать указание на вид объекта. Например, dog, apple и т.д. Если имя переменной состоит из нескольких слов, то они отделяются друг от друга подчерками – home_adress.
Структуры данных Python
структуры данных питона
  • Списком list () называется последовательность, состоящая из значений любого типа. Это могут быть строки, кортежи, просто различные смешанные типы. Список является изменяемым объектом и создается при помощи заключения объектов в квадратные скобки, например, my_list = [‘1’, ‘3’, ‘Hello!’]. Списки, как и строки, можно складывать, умножать, сравнивать.
  • Кортежи являются неизменяемым объектом и полностью аналогичен списку. Создать кортеж tuple () можно при помощи круглых скобок, например, color = (‘red’, ‘green’, ‘white’).
  • Словари создаются при помощи фигурных скобок {} и являются изменяемым объектом. Это ассоциативный массив или, по-другому, неупорядоченная коллекция произвольных объектов. В словарь можно добавлять объекты, получать из него объекты, удалять объекты из словаря. Словари можно сравнивать. Обращаться к элементу словаря можно по ключу.
  • Что такое составные объекты? Это может быть словарь списков, список словарей, двумерные списки и т.д. с произвольной вложенностью.
  • Множество создается при помощи фигурных скобок и элементы множества являются неизменяемыми. Множество содержит только уникальные объекты и не может содержать дубликатов. Операции над множествами — это объединение, пересечение. Их можно сравнивать и применять методы добавления, удаления, обновления.
  • Операндами в программировании являются данные, обрабатываемые командой. Также операнд называют аргументом операции.
  • Оператор в программировании — это инструкция или команда. Она является самой малой и автономной частицей языка программирования.

В питоне всего семь типов операторов:

  1. Арифметические: сложение «+», вычитание «-», умножение «», деление «/», возведение в степень «*», деление без остатка «//», остаток от деления «%»;
  2. Сравнения: меньше «<», больше «>», меньше или равно «< =», больше или равно «> =», равно «= =», не равно «! =»;
  3. Присваивания: просто присваивание «=», сложение и присваивание «+=», вычитание и присваивание «- =», деление и присваивание «/=», умножение и присваивание «=», деление по модулю и присваивание «%=», возведение в степень и присваивание «*=», деление без остатка и присваивание «//=»;
  4. Логические: и «and», или «or», не «not»;
  5. Принадлежности: «в» «in» — принадлежит ли значение последовательности, «нет в» «not in» — не принадлежит ли значение последовательности;
  6. Тождественности т.е. происходит проверка являются операнды одинаковыми или нет. «Это» «is» — при тождественности операндов возвращается «Истина», иначе возвращается «Ложь». «Это не» «is not» — в этом случае наоборот если операнды не тождественны вернется «Истина», тождественны – «Ложь»;

Битовые они исполняют побитовую операцию или, можно сказать, производят работу над операндами бит за битом. Бинарное «И» «&», бинарное «ИЛИ» «», бинарное «ИЛИ НЕТ» «^», инвертирующий оператор (~), бинарный сдвиг влево «<<», бинарный сдвиг вправо «>>».

Приоритет арифметических операций:

  • наивысший приоритет у операции возведение в степень «**»;
  • затем умножение «*», деление «/», деление по модулю «%»;
  • целочисленное деление (//), наименьший приоритет операций сложение «+» и вычитание « ».

Циклы

Циклом называется многократное повторение каких-либо операций, которое зависит от заданных условий. Циклы значительно упрощают написание программ, и в цикле присутствует условие и тело цикла.

Тело цикла – последовательность операций или кода, которая может выполняться несколько раз.

Итерация «iteration» — однократное повторение тела цикла. Итерируемый объект – повторяемый объект «iterable». Он отдает один результат за итерацию. «Iterator» итератор — это объект, который позволяет получить следующий элемент цикла.

В Python можно использовать два цикла while и for.

  • Цикл while записывается как:

while <условие>:
        <блок кода>

Блок кода выделяется табуляцией, которая обычно составляет 4 пробела. В цикле могут быть опции «else», «elif» принудительная остановка, пропуск остатка цикла «continue». Цикл может быть бесконечным.

  • Цикл «for» записывается как

for <переменная> in <список>:
     <блок кода>

В цикле «for» происходит поочередный перебор последовательности нужное количество раз. Все операторы «else», «break», «continue» аналогичны операторам в цикле «while». Для исполнения скрипта определенное количество раз используется функция «range».

Функции

Функция – это часть кода, принимающая аргументы и возвращающая вычисленное значение. Аргумент – это объект, отправляемый в функцию. Аргументом может быть какое-нибудь значение или ссылка на него.

Функции языка Python
функции языка программирования Python

В функции используются параметры и их число не ограничено. Число аргументов соответствует параметрам. Функцию можно объявить в любом месте. Она записывается как:

def <имя функции> (): — после определения функции ставиться двоеточие, аргументы функции заключаются в круглые скобки. После двоеточия идет со следующей строки отступ и тело функции.

Для выхода из функции используется оператор return, который возвращает значения. Если оператор return не указан, то произойдет возврат значения None.

Функции бывают встроенные и пользовательские. В интерпретаторе Python есть ряд часто используемых функций. Они всегда доступны и можно посмотреть документацию с их описанием и примерами применения. Например, при помощи функции input () можно ввести данные с клавиатуры, а при помощи функции print () вывести данные в консоль. Так, print (“Hello, World!”) выводит строку «Hello, World!».

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

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

Классы и методы

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

Класс содержит атрибуты, наследуемые объектами, которые написаны на основе этого класса. При вызове класса метод запускается автоматически.

Методы в классе очень похожи на функции, но принимают только один обязательный параметр. Этот параметр необходим для связи с нужным объектом. Методы помогают работать со строками, массивами, списками и т.д. Классы и их методы лучше изучать подробно в отдельной теме.

Массивы

В массивах «array» хранятся однотипные данные, структурированные определенным образом. Они похожи на списки, но ограничены размером и типом входных данных. Для создания нового массива нужно импортировать библиотеку, которая может с ним работать. Ячейки массива имеют одинаковый размер.

Массивы в Python
одномерные и многомерные массивы в Python

Массивы бывают одномерными, двумерными, многомерными. Размерность массива можно изменять, поэтому предусмотрена функции, позволяющие измерить его размер. В массиве можно добавлять и удалять элементы.

В качестве примера приведу синтаксис метода для списка: spisok . append (аргумент), где аргументом могут быть данные любого типа и аргумент является обязательным. Название метода записывается после названия списка через точку «. append». Этот метод принимает только один аргумент и вставляет его в конец списка. Синтаксис других методов аналогичен.

Модули

Для того, чтобы использовать классы, функции или данные в другой программе в Python можно поместить их в отдельный файл, называемый модулем. Это позволяет повторно использовать ранее написанный код. Модуль можно импортировать при помощи оператора «import» и использовать в других модулях и скриптах.

Некоторые модули уже встроены в интерпретатор по умолчанию. Кроме этого Python 3 имеет библиотеку, содержащую более чем 200 стандартных модулей, с которыми он распространяется.

Ошибки и исключения

Всего в питоне два существует два типа ошибок:

  • Синтаксические ошибки, которые возникают при написании программы с нарушением синтаксиса языка. Эти ошибки определяются интерпретатором при парсинге кода;
  • Исключения – в этом случае программа может быть написана правильно, но при ее выполнении возникает ошибка. Так бывает при попытке деления на «0» т.д. Исключения «exceptions» являются данными, сообщающими какие ошибки происходят при выполнении программы.

Такую ошибку можно обработать и продолжить работу скрипта дальше. Если обработки исключения не происходит, то программа останавливается и в консоли публикуется какого типа эта ошибка с полным ее описанием и указывается место, где она произошла.

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

Библиотеки и фреймворки

В Python есть уже встроенные библиотеки, поставляемые вместе с интерпретатором. Они служат для расширения возможностей разработчика при написании программ. Также есть огромное количество внешних библиотек и фреймворков, которые можно подключить и использовать.

Такое количество библиотек дает преимущество, и способствует популярности Python. Например, высокоуровневая библиотека Pandas. Назначение Pandas – это обработка и анализ данных. Она используется в таких профессиях как Data Science и продолжает активно развиваться.

Для того, чтобы жизнь разработчика была легче, разработано множество веб фреймворков. Они позволяют автоматизировать рутинные процессы и задачи. Также фреймворки дают готовую структуру для написания web приложений.

Pandas Python
Python бибиотека Pandas

Одним из самых популярных фреймворков с открытым свободным кодом является Django. С его помощь можно не добавлять разные библиотеки отдельно, а установить большинство стандартных функций одним пакетом. В 2010 году с помощью фреймворка Django был создан Instagram и в 2012 году Facebook купил его за миллиард долларов.

Pyramid является еще одним open-source популярным фреймворком. Он универсальный, и дает возможность работать с большими и малыми приложениями. У него хорошее и понятное руководство или пособие. Pyramid используется в тех случаях, когда не требуется разработки полноценной CMS, а хватает веб приложения. Этот фреймворк позволяет быстро собрать проект.

Что такое виртуальные среды или окружения языка Python?

Иногда при написании приложений возникают трудности, которые связаны с применением разных версий библиотек. Могут различаться требуемые версии, бывает нельзя изменять и обновлять библиотеки, также библиотеки могут быть недоступны.

Для того, чтобы эти проблемы не возникали были придуманы виртуальные среды или окружения. В каждой виртуальной среде можно запускать свое приложение с набором библиотек. Изменение или обновление этих библиотек не влияет на остальные приложения также использующие эти библиотеки.

Существует программное обеспечение, позволяющее формировать виртуальное окружение. Оно бывает встроенное в Python и внешнее. В стандартную библиотеку Python 3 входит модуль venv.

Для чего предназначен и что можно делать на Python

  • При помощи Python можно создавать сайты на движках Ella, Django CMS и других. Используется, чтобы создавать парсеры для поиска и сбора информации в сети.
  • Создавать программы типа Blender для работы с анимацией и трехмерной графикой, GIMP – редактор изображений для линукса и многое другое.
  • Программировать серверную часть мобильных приложений.
  • Писать различные аналитические приложения и алгоритмы для машинного обучения, искусственного интеллекта и нейронных сетей.
  • С помощью библиотек SciPy, NumPy, Matplotlib проводятся научные исследования и вычисления
  • Автоматизировать работу системных администраторов. На всех серверах с операционной системой Linux Python установлен по умолчанию.
  • Python применялся при написании компьютерных игр таких как World of Tanks, Civilization IV, Battlefield 2.
World of Tanks
компьютерная игра World of Tanks
  • В слаботочных системах, системах контроля доступа, для управления банкоматами в сбербанке и во многих других встроенных системах, станках с ЧПУ и прочее;
  • На питоне есть возможность для создания плагинов и скриптов к программам, созданным на других языках программирования. Эти скрипты встраиваются в программы и автоматизируют процесс.

Преимущества и недостатки

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

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

Какие компании используют Python

О популярности Python говорит тот факт, что он используется такими компаниями, как Google в качестве одного из официальных серверных языков.

компания Google
Транснациональная корпорация Google

Facebook опубликовал большое количество проектов на Python, Instagram использует веб сервера написанные на Python, Spotify где написано большое количество сервисов на питоне.

Dropbox применяет язык в клиенте для персональных компьютеров, сайт Reddit полностью переписан на Python. И это далеко не все компании, которые используют Python в своей работе.

Что такое Anaconda

Это бесплатный дистрибутив языков Python и R. Anaconda скачивается с официального сайта и устанавливается на компьютер. Платформа применяется для машинного обучения и науке о данных. В состав Anaconda входит большой набор доступных популярных библиотек и пакетов.

Anaconda
Дистрибутив Anaconda

Она является виртуальной машиной, которая не связана с операционной системой, и с ее помощью можно программировать на Python. Поддерживается Windows, Linux, Mac OS.

Обучение Python с нуля

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

Программируем на Python Майкл Доусон
Книга «Программируем на Python» Майкла Доусона

Кроме книг в интернете представлено большое количество сайтов с обучающими материалами. Их можно найти, сделав запрос в поисковике. Есть много бесплатных и платных обучающих видеокурсов, в которых бывают материалы различного качества.

Но более качественно изучать Python лучше в высшем учебном заведении с уже хорошо отработанной методикой преподавания программирования. Хорошему программисту можно быстро перейти с одного языка программирования на другой за короткое время.

Python для начинающих