Математический анализ. 3е издание
Скачать 4.86 Mb.
|
• Полностью новую главу о динамической типизации с углубленным освещением этого вопроса (глава 6). • Расширенное введение в ООП (глава 22). • Новые примеры работы с файлами, областями видимости, вложен ными инструкциями, классами, исключениями и т. д. Множество изменений и дополнений было сделано, чтобы облегчить чтение книги начинающим программистам. Учитывая опыт препода вания языка Python на курсах, обсуждение некоторых моментов было перенесено в другие, более соответствующие тематике разделы. Напри мер, описание списков и итераторов теперь приводится вместе с описа нием оператора цикла for, а не с описанием функциональных инстру ментов, как это было ранее. Поскольку книга фактически превратилась в стандартный учебник по Python, в этом издании существенно расширено описание основ язы ка, изложение материала стало более полным и наглядным. Предисловие 17 В дополнение в этом издании приводится полностью обновленный комплект советов и рекомендаций, подобранных из опыта преподава ния в течение последних 10 лет и практического использования Python в течение последних 15 лет. Также были дополнены и расширены учеб ные упражнения – с целью отразить наиболее удачные современные приемы программирования на языке Python, его новые особенности и показать наиболее типичные ошибки, которые совершают начинаю щие программисты на моих курсах. Вообще основы языка в этом изда нии обсуждаются более широко, чем в предыдущих изданиях, вопер вых, потому что сам язык был расширен, а вовторых, потому что я до бавил немало информации, которая имеет важное значение для прак тического применения. Структурные изменения в этом издании Учитывая разросшийся объем книги, материал, как и в предыдущем издании, разбит на несколько частей. Чтобы облегчить усвоение основ языка, весь материал поделен на несколько частей, каждая из кото рых содержит несколько глав. Например, типы и инструкции теперь описываются в двух разных частях, в каждой из которых основным типам и инструкциям отведены отдельные главы. Новая структура по зволяет сказать больше, не перегружая читателя при этом. При пере работке материала упражнения и описания наиболее распространен ных ошибок были перемещены из конца главы в конец части, и теперь они приводятся в конце последней главы каждой части. Упражнения, которые приводятся в конце каждой части, я также до полнил в этом издании кратким обзором и контрольными вопросами в конце каждой главы, что должно помочь вам «пролистать» прочи танный материал. Каждая глава заканчивается серией вопросов, кото рые помогут вам проверить, насколько хорошо вы поняли изложенный материал. В отличие от упражнений в конце каждой части, решения для которых приводятся в приложении B, ответы на вопросы в конце каждой главы следуют непосредственно за вопросами. Я рекомендую просматривать ответы, даже если вы уверены, что правильно ответили на вопросы, потому что эти ответы, кроме всего, являются кратким об зором только что пройденной темы. Несмотря на наличие новых тем, эта книга попрежнему ориентирова на на тех, кто только начинает знакомство с языком Python. Она заду мывалась как учебник по Python для программистов 1 . Во многом она унаследовала из первых двух изданий и материал, и структуру, и ак центы подачи материала. Где это необходимо, я расширил вводную 1 Под «программистами» я подразумеваю всех, кто в прошлом написал хотя бы одну строчку программного кода на любом языке программирования. Если вы не относитесь к этой категории, эта книга все равно будет вам по лезна, но вы должны знать, что она в основном обучает языку Python, а не основам программирования. 18 Предисловие часть для начинающих и отделил более сложные темы от основного потока обсуждения, чтобы не усложнять описание основ. Поскольку это издание в значительной степени основано на проверенном време нем опыте преподавания, оно, как и первые два, может служить ввод ным курсом для самостоятельного изучения языка Python. Ограничение области применения книги Третье издание представляет собой учебник по основам языка про граммирования Python и ничего больше. Здесь приводятся всесторон ние сведения о языке, которые необходимо знать, прежде чем присту пать к практическому его использованию. Материал подается в поряд ке постепенного усложнения и дает полное представление о языке про граммирования, не фокусируясь на областях его применения. Для некоторых «изучить Python» означает потратить часдругой на изу чение руководств в сети Интернет. Такой подход пригоден для опытных программистов – в конце концов, Python – довольно простой язык по сравнению с другими языками программирования. Однако проблема та кого ускоренного изучения состоит в том, что на практике программи сты часто сталкиваются с необычными случаями необъяснимого изме нения значений переменных, параметров по умолчанию и т. д. Цель этой книги состоит в том, чтобы дать твердое понимание основ языка Py thon, чтобы даже самые необычные случаи находили свое объяснение. Это ограничение было введено преднамеренно. Ограничившись обсуж дением основ языка, мы можем заняться более глубоким и полным их исследованием. Более полное обсуждение темы прикладного использо вания Python и справочные материалы, не вошедшие в эту книгу, вы найдете в других публикациях издательства O’Reilly, таких как «Pro gramming Python», «Python Cookbook», «Python in a Nutshell» и «Py thon Pocket Reference». Цель книги, которую вы сейчас читаете, со стоит исключительно в изучении языка Python, чтобы потом вы смог ли применять его для решения прикладных задач, независимо от предметной области, в которой вы работаете. По этой причине некоторые справочные материалы и разделы предыду щих изданий (примерно 15 процентов предыдущего издания) были вы резаны с целью расширить разделы с описанием основ языка Python. Благодаря этому читатели этого издания получат более полное пред ставление об основах языка программирования и – как следствие – бо лее полезный учебник по языку Python. В качестве заключительного упражнения в конце книги (глава 29) приводится несколько услож ненных примеров для самостоятельного изучения. Об этой книге В этом разделе приводятся некоторые наиболее важные замечания об этой книге в общем, не зависящие от номера издания. Никакая книга Предисловие 19 не способна удовлетворить все нужды и потребности читателя, поэто му важно понимать основные цели книги. Предварительные условия В действительности книга не предъявляет никаких предварительных условий. Она с успехом использовалась как начинающими программи стами, так и умудренными опытом ветеранами. Если у вас есть жела ние изучать Python, эта книга наверняка поможет вам. Наличие у чи тателя некоторого опыта в программировании не является обязатель ным, но будет совсем не лишним. Эта книга задумывалась как введение в Python для программистов. Воз можно, она не идеальна для тех, кто раньше никогда не имел дела с ком пьютерами (например, мы не будем тратить время, чтобы объяснять, что такое компьютер), но я не делал никаких предположений о наличии у читателя опыта программирования или об уровне его подготовки. С другой стороны, – я не считаю нужным обижать читателей, предпо лагая, что они «чайники», что бы это ни означало, – писать полезные программы на языке Python просто, и эта книга покажет, как это де лается. В книге Python иногда противопоставляется другим языкам программирования, таким как C, C++, Java™ и Pascal, но эти сравне ния можно просто игнорировать, если ранее вам не приходилось рабо тать с этими языками программирования. Отношения этой книги с другими книгами Эта книга охватывает все основные аспекты языка программирования Python, но при этом я старался ограничить круг обсуждаемых тем, что бы уменьшить объем книги. Для сохранения простоты в ней рассмат риваются самые основные понятия, используются небольшие и оче видные примеры и опущены некоторые незначительные детали, кото рые вы найдете в справочных руководствах. По этой причине данная книга скорее должна рассматриваться как введение, как первый шаг к другим, более специализированным и более полным книгам. Например, мы не будем говорить об интеграции Python/C – это слиш ком сложная тема, которая, однако, является центральной для мно гих систем, основанных на применении Python. Мы также не будем го ворить об истории развития Python и о процессе его разработки. А та ких популярных применений Python, как создание графического ин терфейса, разработка системных инструментов и работа с сетью, мы коснемся лишь очень кратко, если они вообще будут упоминаться. Ес тественно, при таком подходе из поля зрения выпадает значительная часть общей картины. Вообще говоря, Python стоит на более высоком качественном уровне относительно других языков в мире языков сценариев. Некоторые из его идей требуют более глубокого изучения, чем может вместить эта книга, поэтому с моей стороны было бы ответственно порекомендовать 20 Предисловие продолжить его изучение после того, как вы закончите читать эту кни гу. Я надеюсь, что большинство читателей продолжит изучение прин ципов разработки приложений на этом языке, обратившись к другим источникам информации. Ориентированная в основном на начинающих программистов, книга «Изучаем Python» может быть дополнена другими книгами издатель ства O’Reilly о языке Python. Например, существует еще одна моя кни га «Programming Python», содержащая более объемные и полные при меры наряду с описанием приемов прикладного программирования, которая задумывалась как продолжение книги, которую вы сейчас чи таете. Текущие издания книг «Изучаем Python» и «Programming Py thon» представляют собой две части курса обучения, который препода ет автор, – основы языка и прикладное программирование. Кроме того, в качестве справочника можно использовать еще одну книгу издатель ства O’Reilly, «Pyton Pocket Reference», где приводятся некоторые под робности, опущенные здесь. Для дальнейшего изучения можно порекомендовать книги, содержа щие дополнительные сведения, примеры или особенности использова ния языка Python в определенных прикладных областях, таких как вебприложения и создание графических интерфейсов. Например, кни ги «Python in a Nutshell» (O’Relly) и «Python Essential Reference» (Sams) содержат справочную информацию. Книга «Python Cookbook» (O’Reilly) представляет собой сборник примеров для тех, кто уже зна ком с приемами прикладного программирования. Поскольку выбор книг является делом достаточно субъективным, я рекомендую вам са мостоятельно поискать такие, которые наиболее полно будут отвечать вашим потребностям. Неважно, какие книги вы выберете, главное чтобы вы помнили, что для дальнейшего изучения Python вам необхо димы более реалистичные примеры, чем приводятся здесь. На мой взгляд, эта книга будет для вас отличным учебником началь ного уровня, даже несмотря на ее ограниченность (и скорее всего имен но поэтому). Здесь вы найдете все, что необходимо знать, прежде чем приступать к созданию программ и сценариев на языке Python. К тому моменту, когда вы закончите чтение этой книги, вы изучите не только сам язык, но и начнете понимать, как лучше применить его к реше нию ваших повседневных задач. Кроме того, у вас будет все необходи мое для изучения более сложных тем и примеров, которые будут встречаться на вашем пути. Стиль и структура книги Эта книга основана на материалах трехдневных практических курсов изучения языка Python. В конце каждой главы содержится список контрольных вопросов, а в конце последней главы каждой части – уп ражнения. Ответы на контрольные вопросы приводятся непосредствен но в самих главах, а примеры решения упражнений – в приложении B. Предисловие 21 Контрольные вопросы подобраны так, что они представляют собой краткий обзор рассмотренного материала, а упражнения спроектиро ваны так, чтобы сразу же научить вас правильному стилю программи рования и, как правило, каждое упражнение соответствует одному из ключевых аспектов курса. Я настоятельно рекомендую прорабатывать контрольные вопросы и уп ражнения в ходе чтения книги не только для того, чтобы получить опыт программирования на Python, но и потому, что в упражнениях подни маются проблемы, которые не обсуждаются нигде в книге. Ответы на вопросы в главах и примеры решения упражнений в приложении B в случае необходимости помогут вам выйти из затруднительных поло жений (вы можете заглядывать в ответы так часто, как это потребуется). Общая структура книги также следует структуре учебного курса. Так как эта книга задумывалась как быстрое введение в основы языка про граммирования, изложение материала организовано так, чтобы оно отражало основные особенности языка, а не частности. Мы будем дви гаться от простого к сложному: от встроенных типов объектов к инст рукциям, элементам программ и т. д. Каждая глава является полным и самостоятельным описанием одной темы, но каждая последующая глава основана на идеях, введенных в предыдущих главах (например, когда речь пойдет о классах, я буду исходить из предположения, что вы уже знаете, как создаются функции), поэтому для большинства чи тателей имеет смысл читать книгу последовательно. В общих чертах, эта книга описывает язык программирования Python при движении от простого к сложному. Каждая часть посвящена от дельной крупной характеристике языка – типам, функциям и т. д. В большинстве своем примеры являются законченными небольшими сценариями (некоторые из них являются достаточно искусственными, но они иллюстрируют достижение поставленной цели). Если быть бо лее точным, здесь вы найдете: Часть I. Введение Изучение Python мы начнем с общего обзора этого языка и с ответов на очевидно возникающие вопросы: почему ктото использует этот язык, для решения каких задач он может использоваться и т. д. В первой главе рассматриваются основные идеи, лежащие в основе технологии, которые должны дать вам некоторые начальные пред ставления. Далее начинается сугубо технический материал книги. Здесь мы рассмотрим, как выполняют программы человек и интер претатор Python. Цель этой части книги состоит в том, чтобы дать вам начальные сведения, которые позволят вам работать с после дующими примерами и упражнениями. Часть II. Типы и операции Далее мы приступим к исследованию языка программирования Py thon и начнем его изучение с основных типов объектов, таких как числа, списки, словари и т. д. Обладая только этими инструментами, 22 Предисловие вы уже сможете писать достаточно сложные программы. Это самая важная часть книги, потому что она закладывает основу для после дующих глав. В этой части мы также рассмотрим динамическую типизацию и ссылки – ключевые аспекты языка Python. Часть III. Инструкции и синтаксис В следующей части вводятся инструкции языка Python – программ ный код на языке Python, который создает и обслуживает объекты. Здесь также будет представлена общая синтаксическая модель Py thon. Хотя эта часть в основном сосредоточена на описании синтак сиса, тем не менее, здесь приводятся сведения о дополнительных инструментальных средствах, таких как система PyDoc, и рассмат риваются альтернативные стили написания программного кода. Часть IV. Функции В этой части мы начнем рассматривать выскоуровневые способы структурирования программ на языке Python. Функции предостав ляют простой способ упаковки программного кода многократного использования и предотвращения появления избыточного кода. В этой части мы исследуем правила видимости программных элемен тов в языке Python, приемы передачи аргументов и многое другое. Часть V. Модули Модули Python позволяют организовать наборы инструкций и функ ций в виде крупных компонентов, и в этой части будет показано, как создавать модули, как их использовать и перезагружать. Здесь мы также рассмотрим некоторые более сложные темы, такие как пакеты модулей, перезагрузка модулей и переменная __name__. Часть VI. Классы и ООП Здесь мы приступим к исследованию объектноориентированного программирования (ООП). Классы – это необязательный, но очень мощный инструмент структурирования программного кода много кратного использования. Здесь вы увидите, что классы по большей части используют идеи, которые будут описаны к этому моменту, а ООП в языке Python в основном представляет собой поиск имен в связанных объектах. Здесь вы также увидите, что объектноори ентированный стиль программирования в языке Python не являет ся обязательным, но может существенно сократить время разработ ки, особенно если речь идет о долгосрочных проектах. Часть VII. Исключения и инструменты Изучение языка мы закончим рассмотрением модели обработки ис ключительных ситуаций, а также кратким обзором инструмен тальных средств разработки, которые особенно удобны при разра ботке крупных программ (например, инструменты отладки и тести рования). Эта часть появляется в последний раз, в следующих вер сиях все исключения должны быть классами. Предисловие 23 Часть VIII. Приложения Книга заканчивается двумя приложениями, где приводятся реко мендации по использованию языка Python на различных платфор мах (Приложение A) и варианты решения упражнений, которые приводятся в конце каждой части (Приложение B). Ответы на кон трольные вопросы, которые приводятся в конце каждой главы, на ходятся непосредственно в самих главах. Обратите внимание: предметный указатель и оглавление могут ис пользоваться для поиска информации, но в этой книге нет приложе ний со справочными материалами (эта книга – учебник, а не справоч ник). Как уже говорилось выше, в качестве справочников по синтак сису и встроенным особенностям языка Python вы можете использо вать книгу «Python Pocket Reference» (O’Reilly) и справочники на сайте http://www.python.org. |