Изучаем Python

Учебное пособие.

Лутц М. "Изучаем Python" Символ-Плюс, 2011, год, 1280 стр., O’Reilly (12,2 мб. pdf)

Учить Python разработчиков подталкивает его гибкость, простота, высокая скорость разработки и возможность создания эффективных и надежных приложений. Google и Intel, Cisco и Hewlett-Packard - это компании, которые с успехом используют его положительные качества в своих проектах. Внушительный по объему учебник - "Изучаем Python", написан автором, который уже не первый год преподает этот язык на учебных курсах. Четвертое издание книги значительно расширено, переработан и добавлен материал соответствующий версии Python 3.1.

В учебнике представлены базовые основы языка Python, основные типы объектов, принцип их создания и работы с ними, а также функции как основной процедурный элемент языка. Рассматриваются методы работы с модулями и дополнительными объектно-ориентированными инструментами языка Python - классами. Включены описания моделей и инструкций обработки исключений, приводится обзор инструментария разработчика, используемого при работе над большими программами. В конце каждой главы приводится список контрольных вопросов с ответами. Книга идеально подходит для самостоятельного изучения языка.
ISBN 978-5-93286-159-2

Оглавление книги

Часть I. Введение 39

Глава 1. Python в вопросах и ответах 41
Почему программисты используют Python? 41
Является ли Python «языком сценариев»? 44
Все хорошо, но есть ли у него недостатки? 45
Кто в наше время использует Python? 46
Что можно делать с помощью Python? 48
Как осуществляется поддержка Python? 52
В чем сильные стороны Python? 52
Какими преимуществами обладает Python перед языком X? 57
В заключение 58
Закрепление пройденного 59

Глава 2. Как Python запускает программы 63
Введение в интерпретатор Python 63
Выполнение программы 64
Разновидности модели выполнения 69
В заключение 75
Закрепление пройденного 75

Глава 3. Как пользователь запускает программы 77
Интерактивный режим 77
Системная командная строка и файлы 84
Щелчок на ярлыке файла 90
Импортирование и перезагрузка модулей 94
Запуск модулей с помощью функции ехес 101
Пользовательский интерфейс IDLE 102
Другие интегрированные среды разработки 108
Другие способы запуска 109
Какие способы следует использовать? 112
В заключение 114
Закрепление пройденного 114

Часть II. Типы и операции 119

Глава 4. Введение в типы объектов языка Python 121
Зачем нужны встроенные типы 122
Числа 125
Строки 126
Списки 133
Словари 137
Кортежи 144
Файлы 145
Другие базовые типы 147
В заключение 151
Закрепление пройденного 151

Глава 5. Числа 153
Базовые числовые типы 153
Числа в действии 162
Другие числовые типы 177
Числовые расширения 191
В заключение 191
Закрепление пройденного 192

Глава 6. Интерлюдия о динамической типизации 194
Отсутствие инструкций объявления 194
Разделяемые ссылки 199
Динамическая типизация повсюду 204
В заключение 205
Закрепление пройденного 205
Ответы 205

Глава 7. Строки 207
Литералы строк 210
Строки в действии 217
Строковые методы 227
Выражения форматирования строк 234
Метод форматирования строк 239
Общие категории типов 249
В заключение 251
Закрепление пройденного 251

Глава 8. Списки и словари 253
Списки 253
Списки в действии 256
Словари 264
Словари в действии 266
В заключение 282
Закрепление пройденного 282

Глава 9. Кортежи, файлы и все остальное 284
Кортежи 284
Кортежи в действии 286
Файлы 289
Пересмотренный перечень категорий типов 301
Гибкость объектов 302
Ссылки и копии 303
Сравнивание, равенство и истина 306
Иерархии типов данных в языке Python 310
Другие типы в Python 312
Ловушки встроенных типов 313
В заключение 315
Закрепление пройденного 316

Часть III. Инструкции и синтаксис 321

Глава 10. Введение в инструкции языка Python 323
Структура программы на языке Python 323
История о двух if 326
Короткий пример: интерактивные циклы 334
В заключение 340
Закрепление пройденного 340

Глава 11. Присваивание, выражения и print 342
Инструкции присваивания 342
Инструкции выражений 360
Операция print 362
В заключение 374
Закрепление пройденного 374

Глава 12. Условная инструкция if и синтаксические правила 376
Условные инструкции if 376
Синтаксические правила языка Python 379
Проверка истинности 385
Трехместное выражение if /else 387
В заключение 390
Закрепление пройденного 390

Глава 13. Циклы while и for 392
Циклы while 392
break, continue, pass и else 394
Циклы for 400
Приемы программирования циклов 407
В заключение 415
Закрепление пройденного 415

Глава 14. Итерации и генераторы, часть 1 417
Итераторы: первое знакомство 417
Генераторы списков: первое знакомство 425
Новые итерируемые объекты в Python 3.0 433
Другие темы, связанные с итераторами 439
В заключение 439
Закрепление пройденного 439

Глава 15. Документация 441
Источники документации в языке Python 441
Типичные ошибки программирования 453
В заключение 456
Закрепление пройденного 456

Часть IV. Функции 459

Глава 16. Основы функций 461
Зачем нужны функции 462
Создание функций 463
Первый пример: определения и вызовы 466
Второй пример: пересечение последовательностей 469
В заключение 472
Закрепление пройденного 472

Глава 17. Области видимости 474
Области видимости в языке Python 474
Инструкция global 482
Области видимости и вложенные функции 487
Инструкция nonlocal 494
В заключение 502
Закрепление пройденного 502

Глава 18. Аргументы 505
Передача аргументов 505
Специальные режимы сопоставления аргументов 511
Функция поиска минимума 525
Универсальные функции для работы с множествами 528
Имитация функции print в Python 3.0 530
В заключение 533
Закрепление пройденного 534

Глава 19. Расширенные возможности функций 536
Концепции проектирования функций 536
Рекурсивные функции 538
Функции - это объекты: атрибуты и аннотации 542
Анонимные функции: lambda 548
Отображение функций на последовательности: тар 554
Средства функционального программирования:
filter и reduce 556
В заключение 557
Закрепление пройденного 558

Глава 20. Итераторы и генераторы 560
Еще раз о генераторах списков: функциональные инструменты 560
Еще раз об итераторах: генераторы 567
Краткая сводка по синтаксису генераторов в 3.0 583
Хронометраж итерационных альтернатив 586
Типичные ошибки при работе с функциями 596
В заключение 600
Закрепление пройденного 601

Часть V. Модули 605

Глава 21. Модули: общая картина 607
Зачем нужны модули 608
Архитектура программы на языке Python 608
Как работает импорт 612
Путь поиска модулей 614
В заключение 620
Закрепление пройденного 621

Глава 22. Основы программирования модулей 623
Создание модуля 623
Использование модулей 624
Пространства имен модулей 630
Повторная загрузка модулей 635
В заключение 639
Закрепление пройденного 640

Глава 23. Пакеты модулей 641
Основы операции импортирования пакетов 641
Пример импортирования пакета 645
Когда используется операция импортирования пакетов? 647
Импортирование относительно пакета 650
В заключение 663
Закрепление пройденного 664

Глава 24. Дополнительные возможности модулей 665
Сокрытие данных в модулях 665
Включение будущих возможностей языка 666
Смешанные режимы использования:_name_и_main 667
Изменение пути поиска модулей 672
Расширение as для инструкций import и from 673
Модули - это объекты: метапрограммы 674
Импортирование модулей по имени в виде строки 677
Транзитивная перезагрузка модулей 678
Концепции проектирования модулей 681
Типичные проблемы при работе с модулями 682
В заключение 688
Закрепление пройденного 688

Часть VI. Классы и ООП 693

Глава 25. ООП: общая картина 695
Зачем нужны классы 696
ООП с высоты 30 ООО футов 697
В заключение 706
Закрепление пройденного 707

Глава 26. Основы программирования классов 709
Классы генерируют множество экземпляров объектов 709
Классы адаптируются посредством наследования 713
Классы могут переопределять операторы языка Python 717
Самый простой в мире класс на языке Python 721
Классы и словари 723
В заключение 725
Закрепление пройденного 726

Глава 27. Более реалистичный пример 728
Шаг 1: создание экземпляров 729
Шаг 2: добавление методов, определяющих поведение 733
ШагЗ: перегрузка операторов 737
Шаг 4: адаптация поведения с помощью подклассов 739
Шаг 5: адаптация конструкторов 745
Шаг 6: использование инструментов интроспекции 750
Шаг 7 (последний): сохранение объектов в базе данных 757
Рекомендации на будущее 763
В заключение 765
Закрепление пройденного 766

Глава 28. Подробнее о программировании классов 769
Инструкция class 769
Методы 772
Наследование 775
Пространства имен: окончание истории 781
Еще раз о строках документирования 790
Классы и модули 791
В заключение 792
Закрепление пройденного 792

Глава 29. Перегрузка операторов 794
Доступ к элементам по индексу и извлечение срезов:_getitem и _setitem 797
Итерации по индексам: _getitem 800
Итераторы: _iter и _next 802
Проверка на вхождение: _contains _iter и _getitem 807
Обращения к атрибутам: _getattr и _setattr_ 809
Строковое представление объектов: _герг и _str 812
Правостороннее сложение и операция приращения: _radd и _iadd 814
Операция вызова: _call 816
Функциональные интерфейсы и программный код обратного вызова 818
Сравнивание: It _gt и другие 820
Проверка логического значения: _bool и _len 821
В заключение 825
Закрепление пройденного 826

Глава 30. Шаблоны проектирования с классами 828
Python и ООП 828
ООП и наследование: взаимосвязи типа «является» 830
ООП и композиция: взаимосвязи типа «имеет» 832
ООП и делегирование: объекты-обертки 837
Псевдочастные атрибуты класса 839
Методы - это объекты: связанные и несвязанные методы 842
Множественное наследование: примесные классы 849
Классы - это объекты: универсальные фабрики объектов 861
Прочие темы, связанные с проектированием 863
В заключение 863
Закрепление пройденного 864

Глава 31. Дополнительные возможности классов 865
Расширение встроенных типов 866
Классы «нового стиля» 869
Изменения в классах нового стиля 870
Другие расширения в классах нового стиля 880
Статические методы и методы класса 887
Декораторы и метаклассы: часть 1 896
Типичные проблемы при работе с классами 901
В заключение 907
Закрепление пройденного 908

Часть VII. Исключения и инструменты 917

Глава 32. Основы исключений 919
Зачем нужны исключения 920
Обработка исключений: краткий обзор 921
В заключение 927
Закрепление пройденного 928

Глава 33. Особенности использования исключений 929
Инструкция try/except/else 929
Инструкция try/finally 936
Объединенная инструкция try/except/finally 939
Инструкция raise 943
Инструкция assert 946
Контекстные менеджеры with/as 948
В заключение 952
Закрепление пройденного 952

Глава 34. Объекты исключений 954
Исключения: назад в будущее 955
Исключения на основе классов 956
В чем преимущества иерархий исключений? 959
Классы встроенных исключений 962
Определение текста исключения 965
Передача данных в экземплярах и реализация поведения 966
В заключение 968
Закрепление пройденного 969

Глава 35. Использование исключений 971
Вложенные обработчики исключений 971
Идиомы исключений 975
Советы по применению и типичные проблемы исключений 980
Заключение по основам языка 984
В заключение 990
Закрепление пройденного 991

Часть VIII. Расширенные возможности 993

Глава 36. Юникод и строки байтов 995
Изменения в Python 3.0, касающиеся строк 996
Основы строк 997
Примеры использования строк в Python 3.0 1003
Кодирование строк Юникода 1006
Использование объектов bytes в Python 3.0 1015
Использование объектов bytearray в 3.0 (и 2.6) 1018
Использование текстовых и двоичных файлов 1021
Использование файлов Юникода 1026
Другие инструменты для работы со строками в Python 3.0 1031
В заключение 1039
Закрепление пройденного 1040

Глава 37. Управляемые атрибуты 1043
Зачем нужно управлять атрибутами? 1043
Свойства 1045
Дескрипторы 1050
_getatt и _getattribute 1059
Пример: проверка атрибутов 1078
В заключение 1084
Закрепление пройденного 1084

Глава 38. Декораторы 1087
Что такое декоратор? 1087
Основы 1090
Программирование декораторов функций 1100
Программирование декораторов классов 1116
Непосредственное управление функциями и классами 1127
Пример: «частные» и «общедоступные» атрибуты 1130
Пример: проверка аргументов функций 1142
В заключение 1155
Закрепление пройденного 1156

Глава 39. Метаклассы 1160
Нужны или не нужны метаклассы 1161
Модель метаклассов 1168
Объявление метаклассов 1172
Программирование метаклассов 1173
Пример: добавление методов в классы 1179
Пример: применение декораторов к методам 1186
В заключение 1194
Закрепление пройденного 1195

Часть IX. Приложения 1197

Приложение А. Установка и настройка 1199
Установка интерпретатора Python 1199
Настройка Python 1203
Параметры командной строки интерпретатора 1208
Дополнительная информация 1209

Приложение В. Решения упражнений 1211
Часть I. Введение 1211
Часть II. Типы и операции 1214
Часть III. Инструкции и синтаксис 1219
Часть IV. Функции 1221
Часть V. Модули 1229
Часть VI. Классы и ООП 1233
Часть VII. Исключения и инструменты 1241
Алфавитный указатель 1249

 
Скачать книгу бесплатно12,2 мб. pdf