Найти тему
Курсы даром

Python: что это за язык, история, что на нем пишут, плюсы и минусы, как изучить?

Оглавление

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

Что такое Python?

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

Что такое Python
Что такое Python

Этот сайт призван помочь начинающим научиться программировать на python 3. Также здесь можно подробнее узнать об особенностях функционирования этого языка.

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

Популярность языка Пайтон

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

Популярность языка Пайтон
Популярность языка Пайтон

На рынке всё ещё чувствуется недостаток специалистов по разработке программного обеспечения. Поэтому количество открытых вакансий на должность питон-разработчика — показатель востребованности специалистов. В 2019 году Java, Python, JavaScript и C++ входили в число популярных языков, требуемых от работодателей.

Философия языка Питон

Разработчики языка Python придерживаются определённой философии программирования, называемой «Дзеном Питона», и её текст выдаётся интерпретатором Питона по команде import this (работает один раз). Автором этой философии считается Тим Пейтерс.

Философия языка Питон
Философия языка Питон

Вольный перевод текста философии:

  • Красивое лучше уродливого.
  • Явное лучше неявного.
  • Простое лучше сложного.
  • Сложное лучше усложнённого.
  • Плоское лучше вложенного.
  • Разрежённое лучше плотного.
  • Удобочитаемость важна.
  • Частные случаи не настолько существенны, чтобы нарушать правила.
  • Однако практичность важнее чистоты.
  • Ошибки никогда не должны замалчиваться.
  • За исключением замалчивания, которое задано явно.
  • В случае неоднозначности сопротивляйтесь искушению угадать.
  • Должен существовать один — и, желательно, только один — очевидный способ сделать это.
  • Хотя он может быть с первого взгляда не очевиден, если ты не голландец.
  • Сейчас лучше, чем никогда.
  • Однако, никогда чаще лучше, чем прямо сейчас.
  • Если реализацию сложно объяснить — это плохая идея.
  • Если реализацию легко объяснить — это может быть хорошая идея.
  • Пространства имён — великолепная идея, их должно быть много!

История языка Python

Разработка универсального языка программирования началась в конце 80-х годов. Над ним работал программист Гвидо ван Россум. На тот момент он работал в центре информатики и математики в Голландии. Разработка «питона» велась в свободное от работы время. В качестве основы использовался ABC.

Гвидо ван Россум
Гвидо ван Россум

Хронологию Python можно разделить на три этапа:

  1. 1991 год. Исходный код публикуется на alt.sources. На тот момент Python поддерживал ООП, работал с классами, функциями, наследованием, обработкой исключений и поддерживал основные структуры данных.
  2. 2000 год. Появляется обновленная версия Python, в которой появились необходимые для веб-разработчика инструменты (сборщик мусора, поддержка Юникода и т.д.).
  3. 2008 год. Выходит третья версия, которая и по сей день является основной. Ряд особенностей сделали ее совместимой с предыдущими Python. Некоторые разработчики перешли на нее, другие остались на второй версии с целью поддержки старых проектов.

Стоит сказать несколько слов о том, как появилось название языка. Здесь не обошлось без доли юмора. Создатель Python назвал свое детище в честь комедийного шоу, которое пользовалось популярностью в Соединенном Королевстве в 70-х годах прошлого столетия. Речь идет о «Monty Python».

Особенности языка Python

Простой

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

Особенности языка Python
Особенности языка Python

Лёгкий в освоении

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

Свободный и открытый

Python – это пример свободного и открытого программного обеспечения – FLOSS (Free/Libre and Open Source Software). Проще говоря, вы имеете право свободно распространять копии этого программного обеспечения, читать его исходные тексты, вносить изменения, а также использовать его части в своих программах. В основе свободного ПО лежит идея сообщества, которое делится своими знаниями. Это одна из причин, по которым Python так хорош: он был создан и постоянно улучшается сообществом, которое просто хочет сделать его лучше.

Язык высокого уровня

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

Портируемый

Благодаря своей открытой природе, Python был портирован на много платформ (т.е. изменён таким образом, чтобы работать на них). Все ваши программы смогут запускаться на любой из этих платформ без каких-либо изменений, если только вы избегали использования системно-зависимых функций.

Python можно использовать в GNU/Linux, Windows, FreeBSD, Macintosh, Solaris, OS/2, Amiga, AROS, AS/400, BeOS, OS/390, z/OS, Palm OS, QNX, VMS, Psion, Acorn RISC OS, VxWorks, PlayStation, Sharp Zaurus, Windows CE и даже на PocketPC!

Вы даже можете использовать такую платформу, как Kivy, чтобы создавать игры для компьютера и для iPhone, iPad и Android.

Интерпретируемый

Это требует некоторого пояснения.

Программа, написанная на компилируемом языке программирования, как например, C или C++, преобразуется из исходного языка (т.е. C или C++) в язык, понятный компьютеру (бинарный код, т.е. нули и единицы) при помощи компилятора с применением разнообразных флагов и параметров. Когда вы запускаете такую программу, компоновщик/загрузчик копирует программу с диска в оперативную память и запускает её.

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

Объектно-ориентированный

Python поддерживает как процедурно-ориентированное, так и объектно-ориентированное программирование. В процедурно-ориентированных языках программы строятся на основе процедур или функций, которые представляют собой просто-напросто многократно используемые фрагменты программы. В объектно-ориентированных языках программирования программы строятся на основе объектов, объединяющих в себе данные и функционал. Python предоставляет простые, но мощные средства для ООП, особенно в сравнении с такими большими языками программирования, как C++ или Java.

Расширяемый

Если вам нужно, чтобы некоторая критическая часть программы работала очень быстро или вы вынуждены скрыть часть алгоритма, вы можете написать эту часть программы на C или C++, а затем вызывать её из программы на Python.

Встраиваемый

Python можно встраивать в программы на C/C++, чтобы предоставлять возможности написания сценариев их пользователям.

Преимущества и недостатки языка Python

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

  • Язык характеризуется логичным синтаксисом, вследствие чего исходный код программ, написанных «на питоне», легко читается и воспринимается.
  • Еще одно из преимуществ данного языка программирования — его условная легкость. Он считается наиболее подходящим для начинающих специалистов: разрабатывать несложные программы можно научиться уже спустя пару-тройку дней изучения.
  • Большое интернет-сообщество. Если разработчик сталкивается с вопросами и трудностями, он всегда может спросить совета у коллег, что значительно ускоряет решение проблем.
  • Гибкость и масштабируемость. Пайтон позволяет разработчикам адаптировать высокоуровневую логику приложения, что позволяет легко расширять сложные приложения по мере необходимости.
  • Разработка «на питоне» идет быстрее, чем на большинстве других языках.
  • Python является интерпретируемым языком программирования. Это значит, что до запуска он представляет собой обычный текстовый файл. Соответственно, программировать можно почти на всех платформах.

Преимущества и недостатки языка Python
Преимущества и недостатки языка Python

Недостатки

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

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

Сравнение Python с другими языками программирования

Сравнение Python с другими языками программирования
Сравнение Python с другими языками программирования

Python vs Java

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

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

Python гораздо проще Java. Изучение «питона» с нуля обычно занимает несколько недель. А чтобы освоить Java, придется потратить несколько месяцев.

Python vs C/C++

Все вышеперечисленные особенности Java (С-подобного языка), относятся и к C/C++. Главное отличие Python заключается в стоимости разработки и качестве программного обеспечения. Создание программного кода на C/C++ требует от специалиста большей квалификации. Поэтому ПО, созданное на данных языках, обладает высоким качеством, и, соответственно, стоит дороже.

Также Python и C/C++ отличаются длиной кода и простотой его восприятия. Программные продукты, созданные на языке программирования Python, порой бывают в 10 раз короче, чем аналогичные на C/C++. Это оказывает существенное влияние на скорость разработки.

Python vs JavaScript

Python и JavaScript занимают первые две позиции в рейтинге TIOBE. Эти языки объектно-ориентированные. Синтаксис Python проще, чем у JavaScript. При этом программы, написанные на «питоне», выполняются медленнее. Поскольку JavaScript обладает высокой производительностью, на нем можно разрабатывать приложения, функционирующие в онлайн-режиме. Таким образом, программирование на языке Python популярно в сфере Data Science и машинного обучения, а JavaScript применяется для веб-разработки.

Python vs PHP

Оба этих языка не вызывают особых сложностей в процессе изучения. Однако у Python более понятный и хорошо читаемый синтаксис. У PHP узкая специализация: он предназначен для создания сайтов. Python, напротив, – универсальный язык программирования, который позволяет писать код для решения широкого круга задач. Тем не менее, программы, созданные с помощью «питона», работают медленнее.

Где используется язык Python?

Python является самым популярным языком программирования в рейтинге TIOBE за август 2022 года. Его применяют повсеместно: в аналитике данных, тестировании и разработке игр. Кроме того, Python нашел широкое применение среди ученых благодаря своей простоте. Рассмотрим подробнее сферы его применения.

Где используется язык Python
Где используется язык Python

Data Science и аналитика данных

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

  • pandas — библиотека, без которой не обходится ни один аналитик;
  • seaborn — библиотека, которая позволяет строить красивые графики в разных стилях;
  • numpy — модуль, позволяющий проводить вычисления с матрицами и многомерными массивами.

Также в Python есть множество инструментов машинного обучения:

  • TensorFlow,
  • Scikit-learn,
  • Keras.

ОС

Конечно, Windows или Linux на Python не написаны (хотя язык во многие из этих ОС встроен по умолчанию), но подсистемы для банкоматов или мини-компьютеров по типу Raspberry Pi часто создаются именно при помощи Пайтона. То же касается станков, автоматизированых механизмов для управления температурой и т.п.

Можете вспомнить об этом, когда в следующий раз будете снимать деньги в банкомате Сбербанка.

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

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

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

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

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

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

В Python есть два популярных фреймворка для тестирования: pytest и unittest.

Разработка игр

На удивление много популярных игр были написаны с использованием Python. В их число входят Battlefield 2, World of Tanks, The Sims 4 и многие другие. Разработчики игр отдают предпочтение Python прежде всего из-за высокой скорости разработки по сравнению с другими языками программирования, функциональных возможностей и изобилия различных фреймворков. Приведем в пример некоторые из них:

  • PyGame — библиотека, позволяющая создавать полнофункциональные игры. Она может работать на любой операционной системе и на любой платформе.
  • Pyglet — это библиотека, которая поддерживает пользовательский интерфейс, используемый для обработки событий, графики OpenGL, джойстиков, загрузки видео и изображений.
  • PyOrge — фреймворк, который применяется для разработки сцен и создания графики.

Как писать программы на Python?

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

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

В операционных системах на базе ядра Linux можно программировать на Python в интерактивном режиме с помощью приложения «Терминал», в котором работает командная оболочка Bash. Здесь, чтобы запустить интерпретатор, надо выполнить команду python3.

-9

В данном случае запустилась версия 3.8.5. Первое число 3 указывает на то, что это интерпретатор для языка программирования Python 3. Последняя строка с тремя угловыми скобками (>>>) – это приглашение для ввода команд.

Для операционных систем семейства Windows надо скачать интерпретатор с официального сайта языка (https://www.python.org/downloads/windows/). После установки он будет запускаться по ярлыку. Использовать командную оболочку здесь не требуется.

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

-10

Бывает, что в процессе ввода была допущена ошибка или требуется повторить ранее используемую команду. Чтобы заново не вводить строку, в консоли можно прокручивать историю команд, используя для этого стрелки вверх и вниз на клавиатуре. В среде IDLE (в Windows) для этого используются сочетания клавиш (скорее всего Alt+N и Alt+P).

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

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

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

Нижняя зарплатная планка для начинающих разработчиков находится на уровне 30 тысяч рублей. Программисты со стажем от двух лет могут рассчитывать на зарплату в 100–150 тысяч рублей.

Зачастую на должность стажёра или младшего специалиста можно устроиться только в крупную компанию, а расположены они в больших городах вроде Москвы и Санкт-Петербурга. Из-за этого новичкам сложно найти работу в регионах — остаётся искать заказы на фрилансе.

Где учиться Пайтону?

Пайтону учат почти все школы. Хорошие преподаватели и достойная учебная программа доступна на Hexlet.io. Сотни занятий проводятся в Coursera и Udemy. Если нет желания платить, то бескорыстные индусы с YouTube вам в помощь, либо площадки со сливами курсов. На площадке тысячи обучающих роликов, многие из которых получше лекций от профессоров.

Где учиться Пайтону
Где учиться Пайтону

К тому же у языка есть полноценная документация, которая лежит на официальном сайте и доступна всем желающим. Информации по языку там в избытке.

Наука
7 млн интересуются