Математический анализ. 3е издание
Скачать 4.86 Mb.
|
И зу ч ае м P yt h o n Эффективное объектно-ориентированное программирования Изучаем 3-е и зда ние охв атыв ае т P yth on 2 .5 Марк Лутц Мощный, переносимый и легкий в использовании язык программирования Python идеально подходит для разработки самостоятельных программ и сценари- ев. С помощью книги можно быстро и эффективно овладеть основами Python, даже если вы незнакомы с этим языком. Представленной информации вполне дос- таточно, чтобы научиться применять Python в любой прикладной области. Третье издание «Изучаем Python» основано на материалах учебных курсов, которые автор ведет уже на протяжении десяти лет. Главы завершаются блоком вопросов, а в конце каждой части приводятся контрольные упражнения, которые позволят применить новые знания на практике и проверить, насколько хорошо усвоен материал. В книге расматриваются: • Типы и операции – подробное описание основных типов объектов в языке Python: чисел, списков, словарей и т. д. • Инструкции и синтаксис – порядок создания и работы с объектами и общая синтаксическая модель языка Python • Функции – основной процедурный инструмент на языке Python, применяемый для структу- рирования и повторного использования программного кода • Модули – пакеты инструкций, функций и других инструментов, организованных в более крупные компоненты • Классы – дополнительный объектно-ориентированный инструмент в языке Python, исполь- зуемый для структурирования программного кода и обеспечивающий возможность его адап- тации и многократного использования • Исключения и инструменты – модели и инструкции обработки исключений плюс обзор инструментов разработки, используемых при создании крупных программ • Обсуждение ожидаемого выпуска версии Python 3.0 Если вы хотите понять, почему выбирают Python такие компании, как Google и Intel, Cisco и Hewlett-Packard, почему этот язык используют в NASA для научных вычислений, то эта книга станет для вас лучшей отправной точкой. Марк Лутц (Mark Lutz) – известный во всем мире специалист по обучению языку Python. Он одним из первых стал популяризировать этот язык программирования, и его новаторские идеи пользуются авторитетом в сообществе пользователей Python. Высокую оценку специа- листов заслужили его книги «Programming Python» и «Python Pocket Reference», выпущенные издательством O’Reilly. За десять лет преподавания он провел более 200 курсов. Марк Лутц имеет степень магистра в области информатики и обладает 25-летним опытом разработки программного обеспечения. Изучаем Python Категория: программирование Уровень подготовки читателей: средний Издательство «Символ-Плюс» (812) 324-5353, (495) 945-8100 www.symbol.ru Лутц Python третье издание 9 785932 861387 ISBN-13 978-5-93286-138-7 Mark Lutz Learning Python Third Edition Марк Лутц Изучаем Python СанктПетербург–Москва 2009 Третье издание Марк Лутц Изучаем Python, 3е издание Перевод А. Киселева Главный редактор А. Галунов Зав. редакцией Н. Макарова Выпускающий редактор П. Щеголев Научный редактор Б. Попов Редактор Ю. Бочина Корректор C. Минин Верстка Д. Орлова Лутц М. Изучаем Python, 3е издание – Пер. с англ. – СПб.: СимволПлюс, 2009. – 848 с., ил. ISBN 9785932861387 Мощный, переносимый и легкий в использовании язык программирования Python идеально подходит для разработки самостоятельных программ и сце нариев. Эта книга позволит быстро и эффективно овладеть базовыми основами языка Python независимо от степени предварительного знакомства с ним. Третье издание «Изучаем Python» основано на материалах учебных курсов, которые автор, Марк Лутц, ведет уже на протяжении десяти лет. В книге представлены основные типы объектов в языке Python, порядок их создания и работы с ними, а также функции как основной процедурный элемент языка. Рассматриваются методы работы с модулями и дополнительными объектно ориентированными инструментами языка Python – классами. Включены опи сания моделей и инструкций обработки исключений, а также обзор инструмен тов разработки, используемых при создании крупных программ. Обсуждаются изменения в ожидаемой версии 3.0. В конце глав представлены упражнения и вопросы, которые позволят применить новые знания на практике и проверить, насколько хорошо усвоен материал. Если вы хотите понять, почему выбирают Python такие компании, как Google и Intel, Cisco и HewlettPackard, почему этот язык используют в NASA для научных вычислений, то эта книга станет для вас лучшей отправной точкой. ISBN 9785932861387 ISBN 9780596513986 (англ) © Издательство СимволПлюс, 2009 Authorized translation of the English edition © 2008 O’Reilly Media, Inc. This trans lation is published and sold by permission of O’Reilly Media, Inc., the owner of all rights to publish and sell the same. Все права на данное издание защищены Законодательством РФ, включая право на полное или час тичное воспроизведение в любой форме. Все товарные знаки или зарегистрированные товарные зна ки, упоминаемые в настоящем издании, являются собственностью соответствующих фирм. Издательство «СимволПлюс». 199034, СанктПетербург, 16 линия, 7, тел. (812) 3245353, www.symbol.ru. Лицензия ЛП N 000054 от 25.12.98. Налоговая льгота – общероссийский классификатор продукции ОК 00593, том 2; 953000 – книги и брошюры. Подписано в печать 21.11.2008. Формат 70 ×100 1 / 16 . Печать офсетная. Объем 53 печ. л. Тираж 2000 экз. Заказ № Отпечатано с готовых диапозитивов в ГУП «Типография «Наука» 199034, СанктПетербург, 9 линия, 12. Посвящается Вере. Ты жизнь моя. Оглавление Предисловие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 I. Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 1. Python в вопросах и ответах . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Почему программисты используют Python? . . . . . . . . . . . . . . . . . . . . . . 35 Является ли Python «языком сценариев»? . . . . . . . . . . . . . . . . . . . . . . . . 38 Все хорошо, но есть ли у него недостатки? . . . . . . . . . . . . . . . . . . . . . . . . 40 Кто в наше время использует Python? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Что можно делать с помощью Python? . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 В чем сильные стороны Python? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Какими преимуществами обладает Python перед языком X? . . . . . . . 54 В заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Закрепление пройденного . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 2. Как Python запускает программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Введение в интерпретатор Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Выполнение программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Разновидности модели выполнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 В заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Закрепление пройденного . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 3. Как пользователь запускает программы . . . . . . . . . . . . . . . . . . . . . . 72 Интерактивный режим . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Системная командная строка и файлы . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Щелчок на ярлыке файла . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Импортирование и перезагрузка модулей . . . . . . . . . . . . . . . . . . . . . . . . 86 Пользовательский интерфейс IDLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Другие интегрированные среды разработки . . . . . . . . . . . . . . . . . . . . . . 98 Встраивание вызовов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Фиксированные исполняемые двоичные файлы . . . . . . . . . . . . . . . . . . 101 Возможность запуска программ из текстового редактора . . . . . . . . . . 101 Прочие возможности запуска . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Будущие возможности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 8 Оглавление Какие способы следует использовать? . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 В заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Закрепление пройденного . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 II. Типы и операции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 4. Введение в типы объектов языка Python . . . . . . . . . . . . . . . . . . . . . 111 Зачем нужны встроенные типы? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Числа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 Строки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 Списки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 Словари . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 Кортежи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 Файлы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 Другие базовые типы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 В заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 Закрепление пройденного . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 5. Числа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 Числовые типы в Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 Операторы выражений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 Числа в действии . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 Другие числовые типы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 В заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 Закрепление пройденного . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 6. Интерлюдия о динамической типизации . . . . . . . . . . . . . . . . . . . . . 166 Отсутствие инструкций объявления . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 Разделяемые ссылки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 Динамическая типизация повсюду . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 В заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 Закрепление пройденного . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 7. Строки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 Литералы строк . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 Строки в действии . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 Форматирование строки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 Строковые методы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 Общие категории типов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 В заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 Закрепление пройденного . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 8. Списки и словари . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 Списки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 Списки в действии . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 Оглавление 9 Словари . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 Словари в действии . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 В заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 Закрепление пройденного . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 9. Кортежи, файлы и все остальное . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 Кортежи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 Кортежи в действии . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 Файлы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 Пересмотренный перечень категорий типов . . . . . . . . . . . . . . . . . . . . . 252 Гибкость объектов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 Сравнения, равенство и истина . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 Иерархии типов данных в языке Python . . . . . . . . . . . . . . . . . . . . . . . . 260 Другие типы в Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 Ловушки встроенных типов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 В заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 Закрепление пройденного . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 III. Инструкции и синтаксис . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 10. Введение в инструкции языка Python . . . . . . . . . . . . . . . . . . . . . . . . 273 Структура программы на языке Python . . . . . . . . . . . . . . . . . . . . . . . . . 273 История о двух if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 Короткий пример: интерактивные циклы . . . . . . . . . . . . . . . . . . . . . . . 284 В заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 Закрепление пройденного . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 11. Присваивание, выражения и print . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 Инструкции присваивания . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 Инструкции выражений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 Инструкция print . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 В заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 Закрепление пройденного . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 12. Условная инструкция if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 Условные инструкции if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 Синтаксические правила языка Python . . . . . . . . . . . . . . . . . . . . . . . . . 318 Проверка истинности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 В заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 Закрепление пройденного . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 13. Циклы while и for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 Циклы while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 break, continue, pass и else . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 10 Оглавление Циклы for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337 Итераторы: первое знакомство . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 Приемы программирования циклов . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 Генераторы списков: первое знакомство . . . . . . . . . . . . . . . . . . . . . . . . . 357 В заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 Закрепление пройденного . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362 |