Skip to content

Latest commit

 

History

History
247 lines (195 loc) · 19.1 KB

01_introduction.md

File metadata and controls

247 lines (195 loc) · 19.1 KB

Введение в Python

О Python

Python это язык программирования высокого уровня, который был создан в далеком 1991 году Гвидо Ван Россумом. Название язык получил в честь Монти Пайтона и комедийного сериала "Летающий цирк Монти Пайтона". История развития языка довольно интересна, прочитать о ней можно в блоге Гвидо Ван Россума:

Почему стоит изучать Python?

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

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

Широкое распространение и большая популярность -- это еще одна причина выбора Python. Python -- это язык общего назначения. Это означает, что его можно использовать для решения любых задач, начиная от автоматизации рутинных процессов и системного администрирования заканчивая разработкой веб-приложений, компьютерных игр и научных исследований. Высокая универсальность Python подтверждается его использованием различными компаниями в своих продуктах. Например, Spotify использует Python в системе рекомендаций песен; в Google Python является официальным языком программирования; CCP Games использует одну из реализаций Python для своей игры EVE Online; Wargaming использует Python и C++ в своих играх. Несомненно, широкое распространение Python делает его востребованным на рынке труда. Вот несколько последних опросов разработчиков:

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

Интерпретатор Python поставляется сразу с широким набором готовых модулей, которые объединены в стандартную библиотеку и позволяют решать самые разные задачи. Например, с Python поставляются модули, реализующие разные структуры данных, средства обработки текста, создания пользовательского интерфейса, работы с операционными системами и сетью. Эти модули в шутку называют батарейками. Зачатую, когда необходимо написать какую-либо функцию, прежде всего необходимо поискать ее в стандартной библиотеке. С большой долей вероятности она уже реализована другими людьми. Даже если чего-то нет в стандартной библиотеке Python обладает удобными средствами установки сторонних библиотек, коих великое множество. Просмотреть список доступных "из коробки" модулей можно здесь.

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

За все время существования Python обзавелся большим комьюнити, которое постоянно вносит предложения по улучшению языка, называемые PEP. Любое изменение, вносимое в язык, обсуждается сообществом и только после этого принимается решение о том добавить его или отвергнуть. Это способствует активному развитию Python.

Недостатки Python

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

Один из основных недостатков заключается в скорости работы. Не секрет, что интерпретируемые языки выполняются медленнее, чем компилируемые. Таким образом, Python может уступать с точки зрения времени работы другим языкам. Однако, эталонная реализация Python -- CPython и почти стандартная библиотека реализованы на Си, что позволяет достигать достаточно высокой скорости работы. Кроме этого, существуют сторонние библиотеки, специализированные на сложных вычислениях, например NumPy, использование которых позволяет достичь скорости исполнения кода сравнимой с чистым Си. Другим вариантом ускорения программы может быть реализация узких мест на других языках, например на C/C++. Python позволяет достаточно просто интегрировать его и части программы, написанные на других языках программирования. Обратное тоже верно. Так существуют другие реализации Python, позволяющие легко встраивать в Java (JPython), .NET (IronPython).

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

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

Хоть Python и является языком общего назначения, это далеко не значит, что его стоит применять для реализации любых приложений. Несмотря на существование библиотек для фронтенд разработки (например, Brython или Pyodide), Python слабо применяется в этой области. Использование Python в браузере с помощью этих библиотек все равно требует существенных знаний JavaScript для работы с веб-страницей, а также он может уступать в производительности специализированным инструментам.

Помимо работы на стороне браузера, Python не часто используется в мобильной разработке, хотя для него также разработаны специальные библиотеки (например, Kivy). Таким образом не стоит применять Python для всего. Решение конкретной задачи всегда требует выбора наиболее подходящей технологии. Не стоит полягаться на конкретный инструмент.

Принципы Python

Помимо упомянутых ранее принципов, Гвидо Ван Россум вложил в Python и другие основополагающие идеи. О философских принципах, которых придерживается Python, можно прочитать здесь.

Свод основных принципов, которых желательно придерживаться при написании своего кода на Python изложен в PEP 20 под названием "Дзен Python".

Руководство по написанию кода

Обеспечение высокой читаемости кода, помимо лаконичного синтаксиса, достигается за счет существования единого стандарта кодирования. Этот стандарт называется PEP 8, по названию документа в котором он был заложен. Наличие единого стилистического стандарта позволяет привести код разных разработчиков к единому стилю.

О примерах кода

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

Необходимое ПО и зависимости

Для прохождения курса вам потребуется интерпретатор Python версии 3.9. Иногда он уже идет в комплекте с операционной системой. Проверить его наличие можно, выполнив в терминале следующие команды:

$ python --version
Python 3.9.0

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

В случае отсутствия желания устанавливать какое-либо программное обеспечение, то можете развернуть рабочую среду в браузере repl.it без установки git и python на локальном компьютере.

Если вы хотите выполнять блокноты Jupyter самостоятельно, то его потребуется установить дополнительно, выполнив команды:

$ python -m pip install jupyter

Однако, это не обязательно.

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

Новичкам бывает сложно запомнить все требования стандарта PEP 8. Большие программы также проверять довольно трудно. Поэтому для проверки своего или чужого кода рекомендуется применять автоматизированные средства. Их называют линтерами и вот некоторые из них:

Для установки первых 4-х линтеров достаточно выполнить в терминале следующую команду, указав наименование нужного линтера после команды install:

$ python -m pip install pylint

Проверка файла с кодом осуществляется следующей командой:

$ python -m pylint file_name.py

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

$ python -m pylint --rcfile=.pylintrc file_name.py

Python и командная строка

Запустить интерпретатор Python в терминале командной строки можно выполнив команду:

$ python
Python 3.9.0 (tags/v3.9.0:9cf6752, Oct  5 2020, 15:34:40) [MSC v.1927 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

Изменение приглашения ко вводу на значок >>> означает, что интерпретатор Python успешно запущен.

Теперь вы можете вводить любые Python выражения:

>>> print('Hello, World!')
Hello, World!

Полезные ссылки