# 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 на примерах, начиная с простых выражений, инструкций и типов данных, используя функции и модули, и, наконец, касаясь продвинутых понятий, таких как исключения и пользовательские классы.