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» и не имеет никакого отношения к рептилиям. Ссылки на скетчи Monty Python в документации не только разрешены, но и поощряются!

Теперь, когда вы в восторге от Python, вам захочется изучить его более подробно. Поскольку лучший способ выучить язык - это использовать его, учебник предлагает вам поиграть с интерпретатором Python во время чтения.

В следующей главе объясняется механика работы с интерпретатором. Это довольно обыденная информация, но она необходима для отработки примеров, показанных далее.

Остальная часть учебника знакомит с различными особенностями языка и системы Python на примерах, начиная с простых выражений, утверждений и типов данных, функций и модулей, и, наконец, затрагивая такие продвинутые концепции, как исключения и определяемые пользователем классы.