Марк Лутц - Изучаем Python, Четвертое издание (1184811), страница 10
Текст из файла (страница 10)
Редакторам, работавшим над этим проектом: Джулии Стил (Julie Steele), редактору этого издания Татьяне Апанди (TatianaApandi), работавшей над предыдущим изданием, и многим другим редакторам, работавшим над более ранними изданиями. Дугу Хеллманну (DougHellmann) и Джесси Ноллер (Jesse Noller) – за участие в техническом обзореэтой книги. И издательству O’Reilly – за то, что я получил шанс работать надэтими 12 проектами книг; это было здорово (правда, порой я чувствовал себякак герой фильма «День сурка»).Я хочу поблагодарить своего первого соавтора Дэвида Ашера (David Ascher) заего работу над ранними изданиями этой книги.
Дэвид написал часть «OuterLayers» (Внешние уровни) для предыдущих изданий, которую мы, к сожалению, убрали в третьем издании книги, чтобы освободить место для новых материалов об основах языка Python. Чтобы компенсировать эту потерю, в третьемиздании я добавил больше усложненных программ для самостоятельного изучения, а в четвертом издании – новые примеры и новую часть, где обсуждаютсярасширенные возможности Python.
Если вам не хватает этого материала, прочитайте приведенные ранее в предисловии примечания по поводу книг, описывающих вопросы прикладного программирования.За создание такого замечательного и полезного языка я должен поблагодаритьГвидо ван Россума (��������������������������������������������������������Guido�����������������������������������������������������������������������������������������������������van���������������������������������������������������������������������������������������������Rossum����������������������������������������) и все сообщество разработчиков и пользователей Python. Подобно большинству программных продуктов с открытыми исходными текстами, Python развивается благодаря героическим усилиям многих программистов.
Обладая 17-летним опытом программирования наPython, я по-прежнему нахожу его серьезной забавой. Мне очень повезло, чтоя смог наблюдать, как Python из младенца в семействе языков сценариев выросв популярный инструмент, которым пользуются практически все компании,занимающиеся разработкой программного обеспечения. Участвовать в этомпроцессе было очень волнующим занятием, и поэтому я хотел бы поблагодарить и поздравить с достигнутыми успехами все сообщество Python.Я также хотел бы поблагодарить своего первого редактора из издательстваO’Reilly, Фрэнка Уиллисона (�����������������������������������������������Frank�����������������������������������������������������������������������������������Willison���������������������������������). Идея этой книги во многом принадлежит Фрэнку, и в ней нашли отражение его взгляды. Оглядываясь назад,можно заметить, что Фрэнк оказал существенное влияние как на мою карьеру,так и на Python.
Не будет преувеличением сказать, что успех развития PythonПредисловие37на начальном этапе в определенной степени обусловлен влиянием Фрэнка. Мыпо-прежнему скучаем по нему.В заключение хотелось бы выразить личную благодарность. Компании OQOза самые лучшие игрушки, какие я только видел.
Покойному Карлу Сагану(Carl Sagan) за то, что вдохновил 18-летнего мальчишку из Висконсина. Моейматушке за поддержку. И всем крупным корпорациям, с которыми мне приходилось иметь дело, за то, что напоминают мне о том, как это здорово работатьна самого себя.Моим детям, Майку, Сэмми и Рокси, за любую будущность, которую они выберут. Вы были детьми, когда я начинал работать с языком Python, и вы какимто образом выросли за это время; я горжусь вами. Жизнь может перекрыть намвсе пути, но путь домой всегда остается открытым.Но больше всего я благодарен Вере, моему лучшему другу, моей подруге и моейжене. День, когда я нашел тебя, был лучшим днем в моей жизни.
Я не знаю,что принесут мне следующие 50 лет, но я знаю, что хотел бы прожить их рядомс тобой.Марк Лутц Сарасота, Флорида Июль 2009Часть I.ВведениеГлава 1.Python в вопросах и ответахЕсли вы купили эту книгу, вы, скорее всего, уже знаете, что такое Python и насколько важно овладеть этим инструментом. Если это не так, вы наверняка несможете зарабатывать программированием, пока не изучите этот язык, прочитав оставшуюся часть этой книги, и не напишете пару проектов.
Но преждечем мы приступим к изучению деталей, давайте сначала рассмотрим основныепричины высокой популярности Python. Перед тем как приступить собственнок языку, в этой главе мы рассмотрим некоторые вопросы, которые обычно задают начинающие программисты, и дадим ответы на них.Почему программисты используют Python?Это самый типичный вопрос, который задают начинающие программисты,потому что на сегодняшний день существует масса других языков программирования. Учитывая, что число пользователей Python составляет порядкамиллиона человек, достаточно сложно однозначно ответить на этот вопрос.
Выбор средств разработки иногда зависит от уникальных особенностей и личныхпредпочтений.Однако после обучения примерно 225 групп и более 3000 студентов за последние 12 лет у меня накопились некоторые общие мысли по этому поводу. Основные факторы, которые приводятся пользователями Python, примерно таковы:Качество программного обеспеченияДля многих основное преимущество языка Python заключается в удобочитаемости, ясности и более высоком качестве, отличающими его от другихинструментов в мире языков сценариев.
Программный код на языке Pythonчитается легче, а значит, многократное его использование и обслуживание выполняется гораздо проще, чем использование программного кода надругих языках сценариев. Единообразие оформления программного кодана языке Python облегчает его понимание даже для тех, кто не участвовалв его создании. Кроме того, Python поддерживает самые современные механизмы многократного использования программного кода, каким являетсяобъектно-ориентированное программирование (ООП).42Глава 1. Python в вопросах и ответахВысокая скорость разработкиПо сравнению с компилирующими или строго типизированными языками,такими как C, C++ и Java, Python во много раз повышает производительность труда разработчика.
Объем программного кода на языке Python обычно составляет треть или даже пятую часть эквивалентного программногокода на языке C++ или Java. Это означает меньший объем ввода с клавиатуры, меньшее количество времени на отладку и меньший объем трудозатратна сопровождение. Кроме того, программы на языке Python запускаютсясразу же, минуя длительные этапы компиляции и связывания, необходимые в некоторых других языках программирования, что еще больше увеличивает производительность труда программиста.Переносимость программБольшая часть программ на языке Python выполняется без изменений навсех основных платформах.
Перенос программного кода из операционнойсистемы Linux в Windows обычно заключается в простом копировании файлов программ с одной машины на другую. Более того, Python предоставляетмассу возможностей по созданию переносимых графических интерфейсов,программ доступа к базам данных, веб-приложений и многих других типовпрограмм. Даже интерфейсы операционных систем, включая способ запуска программ и обработку каталогов, в языке Python реализованы переносимым способом.Библиотеки поддержкиВ составе Python поставляется большое число собранных и переносимыхфункциональных возможностей, известных как стандартная библиотека.
Эта библиотека предоставляет массу возможностей, востребованныхв прикладных программах, начиная от поиска текста по шаблону и заканчивая сетевыми функциями. Кроме того, Python допускает расширение какза счет ваших собственных библиотек, так и за счет библиотек, созданныхсторонними разработчиками. Из числа сторонних разработок можно назвать инструменты создания веб-сайтов, программирование математических вычислений, доступ к последовательному порту, разработку игровыхпрограмм и многое другое. Например, расширение NumPy позиционируется как свободный и более мощный эквивалент системы программированияматематических вычислений Mathlab.Интеграция компонентовСценарии Python легко могут взаимодействовать с другими частями приложения благодаря различным механизмам интеграции.
Эта интеграцияпозволяет использовать Python для настройки и расширения функциональных возможностей программных продуктов. На сегодняшний деньпрограммный код на языке Python имеет возможность вызывать функциииз библиотек на языке C/C++, сам вызываться из программ, написанныхна языке C/C++, интегрироваться с программными компонентами на языкеJava, взаимодействовать с такими платформами, как COM и .NET, и производить обмен данными через последовательный порт или по сети с помощьютаких протоколов, как SOAP, XML-RPC и CORBA. P���������������������ython���������������� – не обособленный инструмент.Почему программисты используют Python?43УдовольствиеБлагодаря непринужденности языка Python и наличию встроенных инструментальных средств процесс программирования может приносить удовольствие. На первый взгляд это трудно назвать преимуществом, тем неменее, удовольствие, получаемое от работы, напрямую влияет на производительность труда.Из всех перечисленных факторов наиболее существенными для большинствапользователей являются первые два (качество и производительность).Качество программного обеспеченияПо своей природе Python имеет простой, удобочитаемый синтаксис и ясную модель программирования.
Согласно лозунгу, выдвинутому на недавней конференции по языку Python, основное его преимущество состоит в том, что Python«каждому по плечу» – характеристики языка взаимодействуют ограниченнымчислом непротиворечивых способов и естественно вытекают из небольшогокруга базовых концепций. Это делает язык простым в освоении, пониманиии запоминании. На практике программистам, использующим язык Python,почти не приходится прибегать к справочным руководствам – это непротиворечивая система, на выходе которой, к удивлению многих, получается профессиональный программный код.Философия Python по сути диктует использование минималистского подхода.Это означает, что даже при наличии нескольких вариантов решения задачив этом языке обычно существует всего один очевидный путь, небольшое число менее очевидных альтернатив и несколько взаимосвязанных вариантов организации взаимодействий.