ОСНОВЫ ЯЗЫКА PYTHON

Описание языка
Python — современный язык программирования, созданный Гвидо Ван Россум (Guido van Rossum) в 1990-е годы. Язык Python невероятно эффективен: ваши программы делают больше, чем многие другие языки, в меньшем объеме кода.



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

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

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

Удобочитаемость кода. Главное преимущество Python в этом отношении — использование отступов. Отступы отражают вложенность кода. Пустые строки отражают логические блоки программы. Чем понятнее код, тем проще он в отладке, сопровождении и модификации.

Удовольствие. Разнообразие инструментов и библиотек для работы с Python, позволяют разрабатывать код с удовольствием. Под каждую задачу существует свой продуманный инструментарий.
Функциональные возможности
Динамическая типизация. Типы связываются с объектами, а не с переменными. Переменной можно присвоить значение любого типа, а составные объекты могут содержать элементы многих типов.

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

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

Стандартная библиотека. Широкий набор встроенных типов объектов и инструментов в стандартной библиотеке. Python поставляется с модулями для работы с электронной почтой, веб-страницами, базами данных, функциями операционной системы, построения графического интерфейса и т. д.
Другие преимущества
Модульность. Разбиение кода программы на модули, а модули на пакеты. Это повышает уровень абстракции и упрощает работу с кодом. Также позволяет использовать модули в разных проектах

Интегрируемость. Python имеет возможность вызывать функции из библиотек на языке C/C++ и может сам вызываться из программ, написанных на языке C/C++. Позволяет интегрироваться с программными компонентами на языке Java, взаимодействовать с платформами, как COM и .NET, и работать с различными протоколами.

Кроссплатформенность. Python работает на многих платформах: Windows, Mac, Linux, UNIX и т. д. Перенос программного кода из операционной системы Linux в Windows обычно заключается в простом копировании файлов программ с одной машины на другую. Даже интерфейсы операционных систем, включая способ запуска программ и обработку каталогов, в языке Python реализованы переносимым способом.

Сообщество. Большое сообщество разработчиков. Обширный арсенал библиотек. Различные сферы использования.
Не самые сильные
стороны Python
Python не самый быстрый язык. Один из возможных недостатков Python — скорость выполнения кода. Python не является компилируемым языком. Вместо этого код сначала компилируется во внутренний байт-код, который затем выполняется интерпретатором Python.

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

Слабая поддержка мобильных устройств. Python не принадлежит к числу сильных игроков в мобильном секторе.

Слабая многопроцессорная поддержка (слабая масштабируемость). стандартная реализация Python не рассчитана на использование нескольких ядер из-за механизма GIL (Global Interpreter Lock). GIL ограничивает выполнение программы таким образом, что в интерпретаторе выполняется только один поток за определенное время. GIL мешает многопоточности быть хорошим решением для масштабируемости, но в python существуют альтернативные подходы реализации полноценной многопоточности.

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

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

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

IronPython - это реализация Microsoft на языке C#, предназначенная для тесной интеграции с платформой .NET.