Python (он же Пайтон или Питон) — один из самых популярных языков программирования в мире. Новички любят его за простой синтаксис, а компании-гиганты от Instagram* до NASA — за мощность и возможности. Рассказываем, как программировать на Python и почему стоит выбрать его в качестве первого языка для изучения. Также вы узнаете, в чём плюсы и минусы Питона, его возможности, что принято писать на этом языке, а что нет.
- Что такое Python
- Преимущества и недостатки языка
- Что не стоит писать на Питоне
- Как и где используется Python
- Почему стоит выбрать Python в качестве первого языка для обучения
- Перспективы работы программистом со знанием Python
- Основы Python
- IDE и редакторы кода для Python
- Как научиться программированию на Python
Что такое Python
Python — это высокоуровневый скриптовый язык программирования. Его разработал голландский программист Гвидо ван Россум в начале 90-х годов. Он задался целью создать простой, универсальный и мощный язык. И это сработало: спустя 30 лет после запуска первой версии Python набирает всё большую популярность. В рейтинге языков программирования TIOBE от августа 2021 года он обогнал Java и стал вторым по популярности в мире.
Рейтинг языков программирования от TIOBE
Столь широкое распространение Пайтону обеспечили его масштабируемость, высокая производительность и структурированность. Философия языка — «чем проще, тем лучше» — сформулирована в списке из 19 принципов под названием «Дзен Питона».
Преимущества и недостатки языка
Программисты любят Python за универсальность, простоту и большое количество готовых решений, но он проигрывает другим языкам в скорости. Разберём подробнее плюсы и минусы Пайтона.
Преимущества
Простота. Python — структурированный, лёгкий для изучения язык с простым (в сравнении с другими языками) синтаксисом. Поэтому у него низкий порог вхождения. Вместо того, чтобы вникать в формальности языка, новички могут сконцентрироваться на самом процессе кодинга.
Пример кода Python c habr.com
Множество готовых решений. Если вы решили создать что-то на Python, проверьте — скорее всего, кто-то уже это сделал. Есть большое количество готовых библиотек под любые задачи, например:
- Pygame для небольших игр;
- Django и Flask для разработки сайтов, веб-сервисов и серверной части приложений;
- NumPy для сложных математических вычислений, работы с искусственным интеллектом и машинным обучением;
- Requests для упрощения веб-запросов;
- Pandas для обработки и анализа данных;
- SQLAlchemy для работы с базами данных;
- Pillow для обработки изображений.
Универсальность. Python работает практически на всех платформах, в том числе на самых популярных: Windows, Mac OS X и Linux. Написанные на нём программы можно переносить между платформами без изменений.
Динамическая типизация. В этом языке не нужно прописывать тип переменной. Это упрощает код и снижает количество багов и фатальных ошибок.
Недостатки
Низкая скорость. Обратная сторона динамической типизации: она требует больших затрат памяти и, как следствие, больше времени на вычисления.
Непригодность для мобильной разработки. Конечно, при желании можно написать мобильное приложение на Python, но в этом мало смысла, так как есть более подходящие инструменты.
Что не стоит писать на Питоне
Несмотря на универсальность и мощь, для некоторых областей язык всё же не подходит.
- Мобильные приложения. Как мы писали выше, можно — но зачем?
- Кросс-платформенные GUI приложения (приложения с графическим интерфейсом). По факту приложения содержат ошибки, баги, несостыковки и не являются полностью кросс-платформенными.
Как и где используется Python
Пайтон применяют в веб-разработке, системном администрировании, геймдеве, работе с данными, Data Science. Его используют при создании приложений и встроенных систем, в машинном обучении и для написания скриптов.
Веб-разработка
Python — главный конкурент PHP в области веб-разработки. Он подходит для создания сайтов e-commerce, ресурсов с кабинетом пользователя, записью на приём или тренировку, оценками, тестами, обучением, отзывами и так далее. Для большинства задач существуют готовые фреймворки, в которых есть всё, что нужно для полноценного сайта:
- Django,
- Flask,
- Pyramid,
- TurboGears,
- Tornado.
Новичкам, осваивающим веб-разработку, мы рекомендуем начать изучение Python в дополнение к PHP и HTML/CSS.
Программы
Пайтон настолько универсален, что на нём можно писать практически любые программы: для обработки изображений и текста, работы с аудио и видео, вычислений, визуализации данных, автоматизации процессов. На Python или с его применением разработаны YouTube, Instagram*, Reddit, Spotify, Pinterest.
Мобильные приложения
Для разработки мобильных приложений есть более подходящие инструменты, на Python пишут лишь серверную часть. Однако существуют фреймворки для разработки мобильных приложений: Kivy и BeeWare.
Игры
На Python и с его применением разработано много игр, но отдельного внимания заслуживают несколько крупных и известных проектов:
- Battlefield (серверная часть, скрипты и логика);
- EVE Online (серверная часть и логика);
- Sims (игровой моддинг);
- Civilization 4 (практически целиком написана на Питоне).
Встроенные системы (embedded systems)
Embedded systems — системы, на которых работают определённые устройства с ограниченным функционалом (например, цифровые камеры, банкоматы, станки ЧПУ). Популярные приложения для работы с embedded systems на Пайтоне: EmbeddedPython, PyMite, Python Embedded Tools, MicroPython.
Создание скриптов
Пайтон часто используют для написания скриптов к существующим программам на других языках. С его помощью прописывают логику, автоматизируют и создают дополнительные модули.
Почему стоит выбрать Python в качестве первого языка для обучения
Он простой
Вы легко поймёте, как писать на Питоне, если знаете английский язык даже на уровне школьной программы. Код логичен и прост — взглянув на базовые функции, вы определите их назначение.
Он открытый
Под многие задачи существуют готовые решения, библиотеки и исходники, которые можно найти в открытом доступе.
Сам указывает на ошибки
Во многих других языках ошибки придётся искать самостоятельно, Python же сообщает об ошибках при запуске программы.
Сообщество и поддержка
За 30 лет существования Пайтон оброс обширным дружелюбным сообществом. Если вы встретитесь с какой-то проблемой, вы быстро найдёте ответ в поисковике или на тематическом форуме.
Перспективы работы программистом со знанием Python
Популярность Питона растёт, а вместе с ней растёт и спрос на знающих его специалистов. Этот язык универсален, он используется в совершенно разных сферах: веб-разработка, тестирование, DevOps, Data Science, геймдев. Освоив Python, вы сможете выбрать область, которая вам больше всего нравится.
Зарплата программистов
Заработная плата меняется в зависимости от опыта программирования и сферы работы. В регионах новичкам готовы платить от 20 000 ₽, опытным программистам — от 300 000 ₽.
Примеры вакансий специалистов со знанием Python в регионах
В Москве уровень зарплат выше.
Примеры вакансий специалистов со знанием Python в Москве
Известный IT-портал habr.com показывает средние зарплаты по языкам программирования в России за первое полугодие 2021 года:
По данным habr.com, средняя зарплата Python-программистов за первое полугодие 2021 года выросла в сравнении со вторым полугодием 2020 года.
Основы Python
Рассмотрим основные особенности и возможности Пайтона и его отличия от других языков программирования.
Пример простого кода на Python с YouTube-канала «Программирование на Python»
Синтаксис
Простота синтаксиса — одно из преимуществ Python, однако при переходе с других языков программирования именно это вызывает затруднения. В чём его особенности:
- отсутствуют операторные скобки, вместо них используются отступы (табуляции и пробелы);
- комментарий из одной строки начинается с #, а если строк несколько, нужно поставить три двойные кавычки (""") в начале и в конце комментария;
- для присвоения значения переменной используется знак =, а для сравнения знак удваивается (==);
- чтобы увеличить или уменьшить значение переменной, нужно использовать значки += и -= соответственно.
Структуры данных
Структуры используются для хранения связанных данных. В Python встроены 4 типа структур: списки (list), кортежи (turple), словари (dictionary) и множества (set).
- Список (list) — последовательность элементов. Изменяемый тип данных.
- Кортеж (turple) предназначен для хранения нескольких объектов, неизменяемый тип данных.
- Словарь (dictionary) — перечень уникальных ключей и связанных с ними значений.
- Множество (set) — неупорядоченный набор данных любого типа.
Строки
Строки — последовательности символов, наборы слов. Могут быть на любом языке, поддерживаемом Unicode. После создания строк их нельзя изменить. Строки указываются символами ‘ или ", а если в строке несколько строчек, то её нужно выделить тремя двойными кавычками (""") в начале и в конце.
Операторы
Операторы — это символы, выполняющие операции над переменными. В Python их 7 групп:
- арифметические операторы (выполняют арифметические операции);
- операторы присваивания (добавляют переменным значения);
- операторы сравнения (сравнивают значения);
- логические операторы («да», «нет», «или»);
- операторы тождественности (проверяют, являются ли операнды идентичными);
- операторы принадлежности (присутствует ли значение в последовательности);
- побитовые операторы (работают в двоичном формате).
Функции
Функция принимает аргументы и возвращает значение. Она определяется ключевым словом «def», а её аргументы задаются в скобках после названия функции. Далее нужно прописать, что именно делает функция.
Классы
Python — объектно-ориентированный язык, в нем всё является объектами. Классы описывают устройство объектов, а объекты являются экземплярами классов. Функции класса — методы, его переменные — атрибуты. Обозначаются ключевым словом class.
Исключения
Сообщают программисту об ошибках (например, несуществующий файл или деление на 0). Интерпретатор отлавливает исключение и выводит информацию о том, где оно появилось и с чем связано.
Импорт
Процедура импорта «import [libname]» позволяет подключить внешние библиотеки, а «from [libname] import [funcname]» — конкретную функцию из внешней библиотеки.
Работа с файловой системой
Python даёт возможность управлять файлами и папками: создавать, переименовывать, просматривать содержимое, копировать, удалять и т. д.
IDE и редакторы кода для Python
Для работы с кодом нужны специальные программы: редакторы кода или IDE (интегрированная среда разработки). Ниже кратко расскажем, в чём разница между двумя типами программ и какие из них наиболее удобны и популярны.
Редакторы кода — простые текстовые редакторы с подсветкой синтаксиса, могут выполнять код. Хороши для небольших проектов. Выигрывают у IDE в легковесности, но проигрывают в функционале.
IDE — наборы инструментов для разработки, больше подходят для крупных проектов. Как правило, в состав IDE входят:
- редактор кода с подсветкой синтаксиса;
- инструменты сборки, выполнения и отладки;
- система контроля версий.
PyCharm
Полнофункциональная IDE, разработанная специально для Python. Считается одной из лучших. Доступна на всех популярных платформах, существует в бесплатной и платной (профессиональной) версии, для большинства задач хватает бесплатной. Встроенный функционал: тестирование, контроль версий, проверка кода, автозавершение, подсветка ошибок и многое другое.
Интерфейс IDE PyCharm от JetBrains
Spyder
Бесплатная IDE с большим набором возможностей и акцентом на Data Science.
Скриншот IDE Spyder
Thonny
IDE для новичков, доступная на основных платформах. В комплекте идёт версия Python, поэтому дополнительно устанавливать ничего не нужно.
Простой интерфейс IDE Thonny
Python IDLE
Поставляется вместе с Python, подходит для изучения языка и экспериментов. Более опытным пользователям не подойдёт из-за простоты, а для новичков — отличный вариант.
Минималистичная среда IDLE
Atom
Удобный гибкий редактор с поддержкой Python (после установки дополнительного плагина).
Хотя на скриншоте и JavaScript, Atom поддерживает кодинг на Python
Sublime Text
Поддерживает несколько языков программирования (в том числе Пайтон). Популярный редактор с хорошей поддержкой и большим количеством расширений. Для работы чаще всего достаточно бесплатной версии.
Интерфейс текстового редактора Sublime Text
Как научиться программированию на Python
С чего начать изучение Python? Можно долго штудировать учебники и постигать теорию, но прогресс будет быстрее, если практиковаться. Оптимальный вариант — подобрать курсы для изучения основ и смотреть YouTube-каналы опытных программистов на Пайтоне.
Курсы по обучению Python
YouTube-каналы
На YouTube можно найти всё: бесплатные уроки по Python, записи тематических конференций, советы, мнения и лайфхаки от опытных программистов и даже уроки Пайтона для детей. На какие каналы стоит обратить внимание начинающему программисту:
- MoscowPython (записи со встреч сообщества);
- Программирование на Python (ИМКН УрФУ);
- Clever Programmer (видеоуроки и советы на английском языке);
- Anaconda Inc. (канал самой популярной data science-платформы в Python);
- Chris Hawkes (англоязычный канал о Пайтоне, Django, веб-дизайне, программировании и многом другом).
Python прост в изучении и хорошо подходит в качестве первого языка программирования. При этом он функционален и подходит для проектов любого масштаба и назначения: от сайтов до Data Science. Пайтон существует уже 30 лет, он продолжает развиваться, его поддерживают энтузиасты со всего мира, а популярность языка продолжает расти. Если вы решили освоить программирование, рекомендуем начать с Python, и сейчас для этого самое подходящее время.
* Instagram — социальная сеть, которая запрещена в РФ.