Часть 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
Добавить комментарий