Введение¶
Python — один из тех редких языков программирования, которые одновременно претендуют на звание простых и мощных. Вас приятно удивит то, как легко можно сосредоточиться на решении поставленной задачи, а не на синтаксисе и структуре языка, на котором вы программируете.
Официально Python представляют так:
Python — это простой в освоении и мощный язык программирования. Он предоставляет эффективные высокоуровневые структуры данных, а также простой, но эффективный подход к объектно-ориентированному программированию. Его элегантный синтаксис и динамическая типизация наряду с тем, что он является интерпретируемым, делают его идеальным языком для написания сценариев и быстрой разработки приложений в различных областях и на большинстве платформ.
В следующем разделе мы рассмотрим эти особенности более детально.
История названия
Гвидо ван Россум, создатель языка Python, назвал его так в честь телешоу на BBC под названием "Летающий цирк Монти Пайтона"1, а вовсе не потому, что он любит змей, убивающих животных обвиванием своего длинного тела вокруг них и задавливанием.
Особенности Python¶
Простой¶
Python — простой и минималистичный язык. Чтение хорошей программы на Python очень напоминает чтение английского текста, хотя и достаточно строгого! Такая псевдо-кодовая природа Python является одной из его самых сильных сторон. Она позволяет вам сосредоточиться на решении задачи, а не на самом языке.
Лёгкий в освоении¶
Как вы увидите, на Python чрезвычайно легко начать программировать. Python обладает исключительно простым синтаксисом, как уже отмечалось выше.
Свободный и открытый¶
Python — это пример свободного и открытого программного обеспечения — FLOSS (Free/Libré 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 для создания игр для iOS (iPhone, iPad) и Android.
Интерпретируемый¶
Это требует некоторого пояснения.
Программа, написанная на компилируемом языке программирования, как например, C или C++, преобразуется из исходного языка (т. е. C или C++) в язык, понятный компьютеру (бинарный код, т. е. нули и единицы) при помощи компилятора с применением разнообразных флагов и параметров. Когда вы запускаете такую программу, компоновщик/загрузчик копирует программу с диска в оперативную память и запускает её.
Python же, напротив, не требует компиляции в бинарный код. Программа просто выполняется из исходного текста. Python сам преобразует этот исходный текст в некоторую промежуточную форму, называемую байткодом, а затем переводит его на машинный язык и запускает. Всё это заметно облегчает использование Python, поскольку нет необходимости заботиться о компиляции программы, подключении и загрузке нужных библиотек и т. д. Вместе с тем, это делает программы на Python намного более переносимыми, так как достаточно их просто скопировать на другой компьютер, и они работают!
Объектно-ориентированный¶
Python поддерживает как процедурно-ориентированное, так и объектно-ориентированное программирование. В процедурно-ориентированных языках программы строятся на основе процедур или функций, которые представляют собой просто-напросто многократно используемые фрагменты программы. В объектно-ориентированных языках программирования программы строятся на основе объектов, объединяющих в себе данные и функционал. Python предоставляет простые, но мощные средства для ООП, особенно в сравнении с такими большими языками программирования, как C++ или Java.
Расширяемый¶
Если вам нужно, чтобы некоторая критическая часть программы работала очень быстро или вы вынуждены скрыть часть алгоритма, вы можете написать эту часть программы на C или C++, а затем вызывать её из программы на Python.
Встраиваемый¶
Python можно встраивать в программы на C/C++, чтобы предоставлять возможности написания сценариев их пользователям.
Обширные библиотеки¶
Стандартная библиотека Python просто огромна. Она может помочь в решении самых разнообразных задач, связанных с использованием регулярных выражений, генерированием документации, проверкой блоков кода, распараллеливанием процессов, базами данных, веб-браузерами, CGI, FTP, электронной почтой, XML, XML-RPC, HTML, WAV файлами, криптографией, GUI (графическим интерфейсом пользователя) и другими системно-зависимыми вещами. Помните, что всё это доступно абсолютно везде, где установлен Python. В этом заключается философия Python "Всё включено".
Кроме стандартной библиотеки, существует множество других высококачественных библиотек, которые можно найти в Каталоге пакетов Python
Резюме
Python — очень увлекательный и мощный язык. Он имеет хорошее соотношение производительности и возможностей, что делает написание программ на нём одновременно интересным и лёгким.
Python 2 против 3¶
Если вас не интересует разница между Python 2 и Python 3, вы можете пропустить этот радел. Но в любом случае помните, какую версию вы используете.
В 2008 году эта книга была переписана для Python 3. Это была одна из первых книг, посвящённых Python 3. Однако, к сожалению, это привело к путанице среди пользователей, пытавшихся изучать Python 2 по версии книги для Python 3 и наоборот. Тем не менее, мир понемногу мигрирует на Python 3.
Так что да, в этой книге вы будете учиться программировать на Python 3, даже если в конечном счёте планируете использовать Python 2. Помните, что как только вы как следует усвоите и научитесь пользоваться любым из них, вы также сможете легко освоить разницу между ними и адаптироваться. Самое сложное заключается в обучении программированию и понятии основной части языка Python. Это и будет нашей целью в настоящей книге, а как только вы её достигнете, вы сможете запросто использовать Python 2 или Python 3 в зависимости от конкретной ситуации.
Изучить разницу между Python 2 и Python 3 в деталях можно на странице Ubuntu wiki, посвящённой Python 3.
Что говорят программисты¶
Интересно, что такие великие хакеры, как Эрик Рэймонд, говорят о Python:
- Эрик С. Рэймонд — автор работы "Собор и Базар", а также человек, который ввёл термин "Open Source". Он говорит, что Python стал его любимым языком программирования. Эта статья и вдохновила меня на пробу пера в Python.
- Брюс Экель — автор знаменитых книг "Думаем на Java" и "Думаем на С++". Он утверждает, что ни на одном языке программирования его работа не была столь эффективной, как на Python. Кроме того, он считает, что Python — это, пожалуй, единственный язык, стремящийся облегчить жизнь программисту. Подробнее можно прочитать в его полном интервью.
- Питер Норвиг — широко известный автор Lisp, а также директор по качеству поиска в Google (спасибо Гвидо ван Россуму за это замечание). Он говорит, что Python всегда был неотъемлемой частью Google. Вы можете убедиться в этом, заглянув на страницу Google Jobs, на которой владение Python указано как требование для разработчиков программного обеспечения.
-
"Monty Python’s Flying Circus" (прим.перев.) ↩