Если дать развернутую характеристику, то Питон — это:
- интерпретируемый язык
- язык очень высокого уровня с компактным и выразительным синтаксисом
- язык со строгой динамической типизацией
- объектно-ориентированный язык, однако при этом не требующий повсеместного
использования объектной парадигмы; он также позволяет писать программы
в процедурном и функциональном стилях
- кроссплатформенный, свободно распространяемый
- с обширной стандартной библиотекой
- расширяемый и встраиваемый
Программы на языке Питон не компилируются в стандартном понимании в бинарный
код для целевой платформы (как это происходит с программами на Си). Вместо
этого программы автоматически транслируются в байт-код, который исполняется
интерпретатором Питона. Как вы понимаете скорость выполнения скомпилированных
программ выше чем интерпретируемых.
Язык очень высокого уровня подразумевает, что в Питоне имеются более
высокоуровневые конструкции языка (по сравнению с тем же Си/С++). В частности
Питон обладает набором встроенных типов данных высокого уровня, в число
которых входят:
- числовые типы (целые, вещественные, комплексные, десятичные-дробные)
- строки простые и unicode
- булевые значения и специальные значения None и ... (ничто и нечто)
- последовательности: изменяемые списки и неизменяемые кортежи
- коллекции элементов: списки и множества (sets)
- словари (хэш-массивы)
Как и данные, объектами первого класса являются функции, классы, модули.
Питон имеет встроенный механизм интроспекции, механизм исключений.
Частичная поддержка функционального программирования поддерживает
использование лямбда-функций.
Языком очень высокого уровня его делает также встроенный сборщик мусора.
Отличительной особенностью Питона является его синтаксис: блоки кода
выделяются только отступами, без использования специальных ключевых слов (типа
begin...end или специальных скобок { } как в Си). Вкупе с отсутствием
неоходимости завершать каждый оператор на отдельной строке символом точки с
запятой, отсутствием лишних круглых скобок для выражений if, for,
while, получаем отличительный синтаксис Питона.
Такой синтаксис изначально задумывался для того, чтобы программы на языке
Питон получались компактными и наглядными. Если учесть высокоуровневые типы
данных и обширную стандартную библиотеку, динамическую типизацию,
то текст типичной программы на Питоне будет в разы меньше аналогичной
по функциональности программе на том же Си.
Питон — это динамический язык. В нем отсутствует предварительное объявление
типа переменной. Более того, одна и та же переменая может менять свой тип в
результате присваивания ей значения другого типа. При этом Питон является
языком со строгой типизацией, т.е. каждая переменная принадлежит к одному
конкретному типу, и тип переменной можно узнать во время выполнения.
Если взглянуть глубже на переменные Питона, то окажется, что все значения
переменных, а также функции, классы, модули — это суть объекты Питона,
автоматически создаваемые в результате выполнения программы, а также
автоматически удаляемые из памяти сборщиком мусора после того, как эти объекты
более не нужны. Сами же переменные, имена используемые в программе, являются
связкой между строковыми именами и объектами в памяти. Т.е. для удобства можно
упрощенно считать, что все переменные в программе — это лишь ссылки на
соответствующие объекты. Присваивание переменной нового значения — это
изменение ссылки на новый объект.
Питон оперирует объектами. Всё в питоне суть объекты. В основе Питона лежит
объектно-ориентированная парадигма, но она спрятана достаточно глубоко и не
выпячивается без надобности. При желании можно ни разу не задумываться об
объектной природе Питона и писать полностью процедурные программы.
Кросплатформенность обеспечивается за счет унифицированного набора методов и
библиотек для доступа к сервисам операционной системы. Поскольку сама
программа на Питоне не компилируется в нативный бинарный код для конкретного
процессора и конкретной операционной системы, то она (в идеале) является
полностью переносимой. В реальности для обеспечения абсолютной
кроссплатформенности необходимо применять дополнительные усилия и знать
особенности разных платформ, на которых планируется работа приложения. Но всё
равно, и в этом случае переносимость достигается за счет средств самого
Питона.
Питон является свободно распространяемым языком. Его интерпретатор, как и
исходные коды, вы можете свободно скачать с сайта Python. Поддерживаются
разные операционные системы, в том числе есть версии Питон для КПК.
Стандартная библиотека предоставляет программисту набор функций и методов для
решения самых разнообразных задач. В стандартную библиотеку входят сервисы
времени исполнения Питона, в том числе функции для доступа к сервисам самой
операционной системы (обощенные и специфические для конкретной ОС),
файловой подсистемы и проч., различные библиотеки для
работы со строками, в том числе и библиотека регулярных выражений,
коллекция разнообразных функций для математичсеких вычислений, поддержка
unit-тестов, библиотека для логирования выполнения программы, отладочные
модули, библиотека для построения командных интерпретаторов, многочисленные
библиотеки для реализации интернет-сервисов, криптографические функции,
мультимедийные операции.
Кроме столь обширной стандартной библиотеки различными авторами создаются
допонительные библиотеки для других нужд, перечень которых еще более обширен.
Расширяемость — свойство языка, позволяющее использовать в программах на
Питоне модули, написанные на Си/С++. Специальное Python/C API определяет
интерфейс, который необходимо реализовать для взаимодействия питон-программ с
вашим си-кодом.
Встраиваемость — свойство языка, позволяющее программам на Си/С++ выполнять
программы на языке Питон. Специальное Python/C API определяет
интерфейс, который необходимо реализовать для вызова и исполнения
питон-программ из вашего си-кода.
В основе модулей расширения и встраивания питона внутрь вашего приложения
лежит единый набор Python/C API, разница лишь в том, кто является главным в
связке Питон-Си (и временами эта разница слабо уловима).