1. Утоление аппетита¶
Если вы много работаете на компьютере, то рано или поздно вы обнаружите, что есть какая-то задача, которую вы хотели бы автоматизировать. Например, вы можете захотеть выполнить поиск и замену в большом количестве текстовых файлов или переименовать и переставить сложным образом кучу фотофайлов. Возможно, вы хотите написать небольшую пользовательскую базу данных, или специализированное GUI-приложение, или простую игру.
Если вы профессиональный разработчик программного обеспечения, вам, возможно, приходится работать с несколькими библиотеками 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 «Monty Python’s Flying Circus» и не имеет никакого отношения к рептилиям. Использование ссылок на скетчи Монти Пайтона в документации не только разрешено, но и поощряется!
Теперь, когда вы в восторге от Python, вам захочется изучить его более подробно. Поскольку лучший способ изучить язык - это использовать его, учебник приглашает вас поиграть с интерпретатором Python во время чтения.
В следующей главе объясняется механика использования интерпретатора. Это довольно обыденная информация, но она необходима для отработки примеров, показанных далее.
Остальная часть учебника знакомит с различными особенностями языка и системы Python на примерах, начиная с простых выражений, операторов и типов данных, через функции и модули, и, наконец, затрагивая продвинутые концепции, такие как исключения и определяемые пользователем классы.