September 15, 2023

Знакомство с Python

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

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

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

Как и где применяется Python

Это интерпретируемый язык, а не компилируемый, как C++ или Java. Программа на Python представляет собой обычный текстовый файл. Код можно писать практически в любом редакторе или использовать специальные IDE:

  • PyCharm — мощная среда разработки от JetBrains.
  • Spyder — IDE, оптимизированная для работы в Data Science. Идёт в пакете с Anaconda.
  • IDLE — стандартный текстовый редактор в составе языка.
  • SublimeText — текстовый редактор с множеством плагинов.
  • Visual Studio Code — популярный текстовый редактор от Microsoft.

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

Веб-разработка

Чаще всего Python используют в веб-разработке. Для него написано множество фреймворков: FastAPI, Flask, Tornado, Pyramid, TurboGears, CherryPy и, самый популярный, Django.

Ещё на Python пишут парсеры для сбора информации с веб-страниц. Делают это с помощью таких популярных библиотек:

  • Scrapy — кросс-платформенная высокопроизводительная библиотека с большим сообществом пользователей.
  • Beautiful Soup — простая и мощная библиотека для парсинга HTML- и XML-документов. Отличается хорошей документацией.
  • Selenium — инструмент для автоматизации и тестирования онлайн-приложений, который позволяет имитировать работу браузера.

Научные исследования и машинное обучение

Благодаря лаконичности, простому синтаксису и богатому набору инструментов Python стал любимым языком учёных. Есть специальные библиотеки для Python, которые позволяют строить графики, проводить исследования и вычисления:

  • SciPy — набор инструментов для научных вычислений.
  • NumPy — расширение, которое позволяет оперировать матрицами и многомерными массивами.
  • pandas— библиотека для аналитики данных.
  • Matplotlib — библиотека для построения графиков различной сложности.

Также для Python есть множество свободных ML-инструментов:

Тестирование

Ещё одна область применения Python — автоматизация тестирования. Многие специалисты по автоматизации QA выбирают Python из-за его простоты. Он отлично подходит тем, кто имеет небольшой опыт в разработке приложений. Развитое сообщество, логичный синтаксис и удобочитаемость упрощают процесс обучения.

У Python есть простые фреймворки для модульного тестирования:

Десктоп-приложения

Хоть язык не компилируется, с его помощью всё же можно создать десктопные программы. Вот, например, небольшой список популярных приложений, которые написаны на Python:

  • GIMP — визуальный редактор на Linux;
  • Ubuntu Software Centre — центр приложений в ОС Ubuntu (один из дистрибутивов Linux);
  • BitTorrent до шестой версии — менеджер торрент-закачек (позже программу переписали на C++, но сети peer-to-peer всё ещё работают на Python);
  • Blender — программа для создания 3D-графики;
  • Ansible— механизм управления конфигурацией, позволяющий развёртывать многоузловое программное обеспечение;
  • Mercurial— кросс-платформенный инструмент управления распределённым исходным кодом.

Мобильные приложения

Мобильная разработка на Python менее популярна. Для Android чаще используют Java, C#, C++ или Kotlin, а для iOS — Swift или Objective-C. На Python обычно программируют серверную часть приложения. Например, клиент «Инстаграма»* для iOS написан на Objective-C, а сервер — на Python. Тем не менее у Python есть фреймворки для разработки кросс-платформенных мобильных GUI-приложений: Kivy и BeeWare.

Игры

Многие компьютерные игры полностью или частично написаны на Python. Существует заблуждение, что этот язык не подходит для серьёзных проектов, но на самом деле он использовался в разработке таких хитов, как:

  • Battlefield 2;
  • World of Tanks;
  • Civilization IV;
  • The Sims 4;
  • EVE Online.

Хоть Python позволяет писать пользовательские интерфейсы и работать с графикой, чаще всего на нём пишут скрипты — например, для взаимодействия персонажей, запуска сцен и обработки событий. На Python написан искусственный интеллект AlphaStar для StarCraft 2, способный победить сильнейших профессиональных игроков.

Преимущества Python

Главное преимущество Python — его простота. Не нужно тратить месяцы на изучение сложного синтаксиса, как в C++, и переживать об утечках памяти. Язык всё сделает за вас.

Другие достоинства Python:

  • Это интерпретируемый язык. До запуска программа на Python представляет собой обычный текстовый файл, который можно запустить на любой платформе, где установлен интерпретатор.
  • Он отлично подходит новичкам. Python хорошо спроектирован и логичен. Для его изучения даже не нужно знать английский язык. Благодаря его простоте разработка идёт намного быстрее, потому что программист пишет меньше кода.
  • У языка мощное сообщество. Сообщество пользователей Python настолько большое, что если вы столкнётесь с непонятной ошибкой, то, скорее всего, быстро найдёте её решение в интернете. Ведь до вас кто-то уже столкнулся с похожей и выложил решение на Stack Overflow.

Недостатки Python

А теперь перейдём к «ложке дёгтя»:

  • Программы на Python — среди самых медленных. Приложения для iOS на Swift работают в 8,7 раза быстрее, чем на Python. Реализация PyPy по скорости близка к Java, но в ней есть не все возможности оригинального языка. Python не подходит для задач, требующих большого объёма памяти, — их лучше решать вставками на C или C++.
  • Сильная зависимость языка от системных библиотек. Это затрудняет перенос приложений на другие системы. Чтобы решить проблему, придумали Virtualenv, но и у него есть недостатки: избыточность полных методов изоляции, костыли, дублирование системных библиотек.
  • Global Interpreter Lock (GIL) не позволяет выполнять несколько потоков одновременно в реализации CPython. Однако GIL можно отключить на какое-то время, как это сделано в пакете NumPy.
  • Динамическая типизация. «Вот это да! — скажете вы. — Разве динамическая типизация — это не круто»? С одной стороны — да, но именно из-за неё ошибки отображаются во время выполнения (runtime), а не компиляции (compile time).

Трудоустройство и средняя зарплата Python-разработчика

Популярность Python растёт уже больше восьми лет, язык часто занимает первые места в индексе TIOBE. Параллельно растёт и востребованность Python-разработчиков. Средняя зарплата «питониста» в России — 180 тысяч рублей. Правда, чтобы получать такую зарплату, нужно знать не только сам язык, но и его фреймворки и другие дополнительные технологии.

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

Сейчас Python популярен как никогда. В прошлом году язык вышел на первое место индекса TIOBE, обойдя С и Java. Он активно развивается, синтаксис расширяется, постепенно решаются «проблемы», с которыми Python часто ассоциируется — вроде низкой производительности.Открытых библиотек в PyPI все