1. Пробуждая интерес
********************

Если вы много работаете за компьютером, рано или поздно вы столкнётесь
с задачей, которую захотите автоматизировать. Например, вы можете
захотеть выполнить поиск и замену в большом количестве текстовых
файлов или переименовать и отсортировать группу файлов фотографий
сложным образом. Возможно, вы захотите написать небольшую
пользовательскую базу данных, специализированное приложение с
графическим интерфейсом или простую игру.

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

Python — язык, который вам подойдёт.

Вы можете написать сценарий оболочки Unix или использовать пакетные
файлы Windows для некоторых из этих задач, но сценарии оболочки лучше
всего подходят для перемещения файлов и изменения текстовых данных,
они плохо подходят для приложений или игр с графическим интерфейсом.
Вы можете написать программу на C/C++/Java, но разработка даже первого
черновика может занять много времени. Python проще в использовании,
доступен в операционных системах Windows, macOS и 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 на примерах, начиная с простых выражений, инструкций и
типов данных, используя функции и модули, и, наконец, касаясь
продвинутых понятий, таких как исключения и пользовательские классы.
