1. Разжигая ваш аппетит
Если вы много работаете за компьютером, то появится потребность в автоматизации какой-либо задачи. Например, может потребоваться выполнить поиск и замену по большому количеству текстовых файлов или переименование и перегруппирование кучи фотографий сложным образом. Возможно, вы хотели бы написать маленькую пользовательскую базу данных, специализированное приложение с графическим интерфейсом или простую игру.
Если вы профессиональный разработчик программных продуктов — вероятно, вы привыкли работать с несколькими библиотеками на C/C++/Java, но находите обычный цикл написания/компиляции/тестирования/перекомпиляции кода чересчур медленным. Возможно, вы пишете набор тестов для такой библиотеки и процесс написания тестирующего кода воспринимается утомительным. Или же вы написали программу, которая должна использовать специальный язык для расширений и не хотите проектировать и разрабатывать полностью новый язык для вашего приложения.
Python — язык для тебя.
Вы можете написать шелл-сценарий для Unix или использовать пакетные файлы Windows для некоторых из этих задач, но шелл-сценарии хороши лишь для перемещения файлов и замены текстовых данных — они вряд ли подойдут для написания приложений, снабженных графическим интерфейсом, или игр. Вы можете написать программу на C/C++/Java, но разработка может занять довольно много времени, — даже на то, чтобы получить первый рабочий набросок, его требуется немало. Python — проще в использовании, доступен на операционных системах Windows, Mac OS X и Unix, и поможет сделать работу намного быстрее.
Даже учитывая лёгкость использования, Python — полноценный язык программирования, предлагающий много больше возможностей для структурирования и поддержки крупных программ, чем могут позволить себе шелл-сценарии или пакетные файлы. С другой стороны, Python также предоставляет намного больше информации для отладки ошибок чем C и, будучи сверхвысокоуровневым языком, содержит встроенные высокоуровневые типы данных — такие, как гибкие массивы и словари. Благодаря наличию обобщённых типов данных Python применим для более широкого круга приложений чем Awk или даже Perl, и при этом очень многие вещи остаются в языке Python как минимум настолько же простыми, насколько просты в этих языках.
Python позволяет вам разделить вашу программу на модули, которые могут повторно использоваться в других программах на Python. Он поставляется вместе с внушительной коллекцией стандартных модулей, которые вы можете использовать в качестве фундамента ваших программ; или в качестве примеров для того, чтобы начать изучение Python. Многие из этих модулей предоставляют различную полезную функциональность: например, ввод-вывод для файлов, системные вызовы, сокеты, и даже инструменты для создания графического пользовательского интерфейса — такие, как Tk.
Python — интерпретируемый язык, который позволяет сэкономить значительное время на разработку программ, поскольку нет необходимости в компиляции и линковки. Интерпретатор можно использовать в интерактивном режиме, что позволяет легко экспериментировать с возможностями языка и написания одноразовых программ или для тестирования функций при разработке программы снизу вверх. Он также удобен как настольный калькулятор.
Python позволяет создавать компактные и удобочитаемые программы. Текст программы на Python обычно намного короче, чем эквивалентные программы на C, C++ или Java, по нескольким причинам:
- Типы данных высокого уровня позволяют выражать сложные операции одним оператором;
- Блочный оператор реализуется с помощью отступов вместо открывающихся и закрывающихся скобок;
- Объявления типов переменных или аргументов не требуются.
Python расширяем: если вы знаете, как программировать на C, то вам будет легко добавить к интерпретатору новую встроенную функцию или модуль, выполнить критические операции на максимальной скорости или связать программы на Python с библиотеками, которые могут быть доступны только в бинарной форме (например, зависящие от поставщика графические библиотеки). Если вы действительно увлечены — вы можете привязать интерпретатор Python к написанному на C приложению, для использования его в качестве языка расширений или командного языка.
Кстати, язык назван в честь шоу на BBC «Летающий цирк Монти Пайтон» и не имеет никакого отношения к рептилиям. Ссылки на скетчи Монти Пайтон в документации не только разрешены, но и поощряются!
Теперь, когда вы все в восторге от Python, вы захотите изучить его более подробно. Поскольку лучший способ выучить язык — это писать на нём. Учебник предлагает вам поиграть с интерпретатором Python во время чтения.
В следующей главе поясняется механика использования интерпретатора. Она является довольно поверхностной информацией, но имеет важное значение для проверки приведенных примеров позже.
В остальной части учебника рассматриваются различные особенности языка Python и примеры, начиная с простых выражений, операторов и типов данных, функций и модулей, и, наконец, коснемся таких понятий, как исключения и определяемые пользователем классы.