Что такое Python? Мощное, интуитивно понятное программирование

Начиная с 1991 года, язык программирования Python считался средством заполнения пробелов, способом написания сценариев, которые «автоматизируют скучные вещи» (как сказано в одной популярной книге по изучению Python) или быстрого создания прототипов приложений, которые будут реализованы на других языках. .

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

Видео по теме: Как Python упрощает программирование

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

Ключевые преимущества Python 

Успех Python основан на нескольких преимуществах, которые он предоставляет как новичкам, так и экспертам.

Python прост в изучении и использовании

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

Python широко принят и поддерживается

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

Python - это не «игрушечный» язык

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

Python продолжает двигаться вперед

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

Для чего используется Python

Самый простой вариант использования Python - это язык сценариев и автоматизации. Python - это не просто замена сценариев оболочки или командных файлов; он также используется для автоматизации взаимодействия с веб-браузерами или графическими интерфейсами приложений или для инициализации и настройки системы с помощью таких инструментов, как Ansible и Salt. Но сценарии и автоматизация - это только верхушка айсберга Python.

G БЩИЙ прикладное программирование с Python

Вы можете создавать приложения с графическим интерфейсом для командной строки и кросс-платформенные приложения с помощью Python и развертывать их как автономные исполняемые файлы. Python не имеет встроенной возможности генерировать автономный двоичный файл из скрипта, но для этого можно использовать сторонние пакеты, такие как cx_Freeze и PyInstaller.

Наука о данных и машинное обучение с Python

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

Веб-сервисы и RESTful API в Python

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

Метапрограммирование и генерация кода на Python

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

Python также может использоваться для управления системами генерации кода, такими как LLVM, для эффективного создания кода на других языках.

«Склеить код» в Python

Python часто называют «связующим языком», что означает, что он может позволить разрозненному коду (обычно библиотекам с интерфейсами языка C) взаимодействовать. Его использование в науке о данных и машинном обучении именно в этом ключе, но это всего лишь одно воплощение общей идеи. Если у вас есть приложения или программные домены, которые вы хотели бы подключить, но не можете общаться друг с другом напрямую, вы можете использовать Python для их соединения.

Где Python терпит неудачу

Также стоит отметить некоторые задачи, для которых Python не подходит.

Python - это язык высокого уровня, поэтому он не подходит для программирования на системном уровне - драйверы устройств или ядра ОС не рассматриваются.

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

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

Как Python упрощает программирование

Синтаксис Python должен быть понятным и понятным, без особых претензий. Стандартный «привет, мир» в Python 3.x - это не что иное, как:

print («Привет, мир!»)

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

с open ('myfile.txt') как my_file:

    file_lines = [x.rstrip ('\ n') для x в my_file]

with/asСтроительство представляет собой контекст менеджер , который обеспечивает эффективный способ для создания экземпляра объекта для блока кода , а затем распоряжаться им за пределами этого блока. В этом случае объект my_fileсоздается с помощью open() функции. Это заменяет несколько строк шаблона, чтобы открыть файл, прочитать отдельные строки из него, а затем закрыть его.

[x … for x in my_file]Строительство является еще идиосинкразии Python, то список понимание . Он позволяет my_fileвыполнять итерацию элемента, который содержит другие элементы (здесь и содержащиеся в нем строки), и позволяет xобрабатывать каждый повторяемый элемент (то есть каждый ) и автоматически добавлять его в список.

Вы можете написать такую ​​вещь, как формальный for… цикл на Python, так же, как на другом языке. Дело в том, что Python имеет способ экономично выражать такие вещи, как циклы, которые перебирают несколько объектов и выполняют простую операцию с каждым элементом в цикле, или работать с вещами, требующими явного создания и удаления.

Подобные конструкции позволяют разработчикам Python сбалансировать краткость и удобочитаемость.

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

Python 2 против Python 3

Python доступен в двух версиях, которые достаточно разные, чтобы сбить с толку многих новых пользователей. Python 2.x, более старая «устаревшая» ветвь, будет продолжать поддерживаться (то есть получать официальные обновления) до 2020 года, а после этого может неофициально существовать. Python 3.x, нынешнее и будущее воплощение языка, имеет множество полезных и важных функций, которых нет в Python 2.x, таких как новые синтаксические функции (например, «оператор моржа»), улучшенные элементы управления параллелизмом и многое другое. квалифицированный переводчик.

Принятие Python 3 на долгое время замедлилось из-за относительного отсутствия поддержки сторонних библиотек. Многие библиотеки Python поддерживают только Python 2, что затрудняет переключение. Но за последние пару лет количество библиотек, поддерживающих только Python 2, сократилось; все самые популярные библиотеки теперь совместимы как с Python 2, так и с Python 3. Сегодня Python 3 - лучший выбор для новых проектов; нет причин выбирать Python 2, если у вас нет выбора. Если вы застряли на Python 2, в вашем распоряжении есть различные стратегии.

Библиотеки Python

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

Стандартная библиотека Python предоставляет модули для общих задач программирования - математики, обработки строк, доступа к файлам и каталогам, сети, асинхронных операций, потоковой передачи, управления многопроцессорностью и т. Д. Но он также включает модули, которые управляют общими задачами программирования высокого уровня, необходимыми для современных приложений: чтение и запись структурированных файловых форматов, таких как JSON и XML, управление сжатыми файлами, работа с интернет-протоколами и форматами данных (веб-страницы, URL-адреса, электронная почта). Почти любой внешний код, который предоставляет C-совместимый интерфейс внешней функции, может быть доступен с помощью ctypesмодуля Python .

Дистрибутив Python по умолчанию также предоставляет элементарную, но полезную кроссплатформенную библиотеку графического интерфейса через Tkinter и встроенную копию базы данных SQLite 3.

Тысячи сторонних библиотек, доступных через индекс пакетов Python (PyPI), являются самым ярким свидетельством популярности и универсальности Python.

Например:

  • Библиотека BeautifulSoup предоставляет универсальный набор инструментов для очистки HTML - даже сложного, сломанного HTML - и извлечения из него данных.
  • Запросы делают масштабную работу с HTTP-запросами безболезненной и простой.
  • Такие фреймворки, как Flask и Django, позволяют быстро разрабатывать веб-сервисы, охватывающие как простые, так и сложные варианты использования.
  • Несколько облачных сервисов можно управлять с помощью объектной модели Python с помощью Apache Libcloud.
  • NumPy, Pandas и Matplotlib ускоряют математические и статистические операции и упрощают создание визуализаций данных.

Компромиссы Python

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

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

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

с open ('myfile.txt') как my_file:

    file_lines = [x.rstrip ('\ n') для x в my_file]

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

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

Python медленный? Не обязательно

Одна из распространенных оговорок в отношении Python заключается в том, что он медленный. Объективно это правда. Программы Python обычно работают намного медленнее, чем соответствующие программы на C / C ++ или Java. Некоторые программы Python будут работать на порядок или больше медленнее.