1. Разжигаем аппетит¶Whetting Your Appetite
Если много работать за компьютером, рано или поздно возникает задача, которую хотелось бы автоматизировать. Например, может потребоваться выполнить поиск и замену в большом количестве текстовых файлов, или сложным образом переименовать и переупорядочить набор фотографий. Возможно, захочется написать небольшую базу данных, специализированное приложение с графическим интерфейсом или простую игру.
Профессиональному разработчику, возможно, приходится работать с несколькими библиотеками на 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 и системы на примерах, начиная с простых выражений, операторов и типов данных, затем функций и модулей и, наконец, затрагивая продвинутые концепции, такие как исключения и пользовательские классы.