Знакомство с 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. Существует заблуждение, что этот язык не подходит для серьёзных проектов, но на самом деле он использовался в разработке таких хитов, как:
Хоть Python позволяет писать пользовательские интерфейсы и работать с графикой, чаще всего на нём пишут скрипты — например, для взаимодействия персонажей, запуска сцен и обработки событий. На Python написан искусственный интеллект AlphaStar для StarCraft 2, способный победить сильнейших профессиональных игроков.
Преимущества Python
Главное преимущество Python — его простота. Не нужно тратить месяцы на изучение сложного синтаксиса, как в C++, и переживать об утечках памяти. Язык всё сделает за вас.
- Это интерпретируемый язык. До запуска программа на 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 все