Изучаем Python

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Author(s): Лутц М.
Edition: 4-е изд.
Publisher: Символ-Плюс
Year: 2011

Language: Russian
Pages: 1279

Об авторе......Page 5
Предисловие......Page 16
Часть I.
Введение......Page 38
Почему программисты используют Python?......Page 40
Является ли Python «языком сценариев»?......Page 43
Все хорошо, но есть ли у него недостатки?......Page 44
Кто в наше время использует Python?......Page 45
Что можно делать с помощью Python?......Page 47
В чем сильные стороны Python?......Page 51
Какими преимуществами обладает Python перед языком X?......Page 56
В заключение......Page 57
Закрепление пройденного......Page 58
Введение в интерпретатор Python......Page 62
Выполнение программы......Page 63
Разновидности модели выполнения......Page 68
Закрепление пройденного......Page 74
Интерактивный режим......Page 76
Системная командная строка и файлы......Page 83
Щелчок на ярлыке файла......Page 89
Импортирование и перезагрузка модулей......Page 93
Запуск модулей с помощью функции exec......Page 100
Пользовательский интерфейс IDLE......Page 101
Другие интегрированные среды разработки......Page 107
Другие способы запуска......Page 108
Какие способы следует использовать?......Page 111
Закрепление пройденного......Page 113
Часть II.
Типы и операции......Page 118
Глава 4.
Введение в типы объектов языка Python......Page 120
Зачем нужны встроенные типы?......Page 121
Числа......Page 124
Строки......Page 125
Списки......Page 132
Словари......Page 136
Кортежи......Page 143
Файлы......Page 144
Другие базовые типы......Page 146
Закрепление пройденного......Page 150
Базовые числовые типы......Page 152
Числа в действии......Page 161
Другие числовые типы......Page 176
В заключение......Page 190
Закрепление пройденного......Page 191
Отсутствие инструкций объявления......Page 193
Разделяемые ссылки......Page 198
Динамическая типизация повсюду......Page 203
Ответы......Page 204
Глава 7.
Строки......Page 206
Литералы строк......Page 209
Строки в действии......Page 216
Строковые методы......Page 226
Выражения форматирования строк......Page 233
Метод форматирования строк......Page 238
Общие категории типов......Page 248
Закрепление пройденного......Page 250
Списки......Page 252
Списки в действии......Page 255
Словари......Page 263
Словари в действии......Page 265
Закрепление пройденного......Page 281
Кортежи......Page 283
Кортежи в действии......Page 285
Файлы......Page 288
Пересмотренный перечень категорий типов......Page 300
Гибкость объектов......Page 301
Ссылки и копии......Page 302
Сравнивание, равенство и истина......Page 305
Иерархии типов данных в языке Python......Page 309
Другие типы в Python......Page 311
Ловушки встроенных типов......Page 312
В заключение......Page 314
Закрепление пройденного......Page 315
Часть III.
Инструкции и синтаксис......Page 320
Структура программы на языке Python......Page 322
История о двух if......Page 325
Короткий пример: интерактивные циклы......Page 333
Закрепление пройденного......Page 339
Инструкции присваивания......Page 341
Инструкции выражений......Page 359
Операция print......Page 361
Закрепление пройденного......Page 373
Условные инструкции if......Page 375
Синтаксические правила языка Python......Page 378
Проверка истинности......Page 384
Трехместное выражение if/else......Page 386
Закрепление пройденного......Page 389
Циклы while......Page 391
break, continue, pass и else......Page 393
Циклы for......Page 399
Приемы программирования циклов......Page 406
Закрепление пройденного......Page 414
Итераторы: первое знакомство......Page 416
Генераторы списков: первое знакомство......Page 424
Новые итерируемые объекты в Python 3.0......Page 432
Закрепление пройденного......Page 438
Источники документации в языке Python......Page 440
Типичные ошибки программирования......Page 452
Закрепление пройденного......Page 455
Часть IV.
Функции......Page 458
Глава 16.
Основы функций......Page 460
Зачем нужны функции?......Page 461
Создание функций......Page 462
Первый пример: определения и вызовы......Page 465
Второй пример:
пересечение последовательностей......Page 468
Закрепление пройденного......Page 471
Области видимости в языке Python......Page 473
Инструкция global......Page 481
Области видимости и вложенные функции......Page 486
Инструкция nonlocal......Page 493
Закрепление пройденного......Page 501
Передача аргументов......Page 504
Специальные режимы
сопоставления аргументов......Page 510
Функция поиска минимума......Page 524
Универсальные функции
для работы с множествами......Page 527
Имитация функции print в Python 3.0......Page 529
В заключение......Page 532
Закрепление пройденного......Page 533
Концепции проектирования функций......Page 535
Рекурсивные функции......Page 537
Функции – это объекты: атрибуты и аннотации......Page 541
Анонимные функции: lambda......Page 547
Отображение функций
на последовательности: map......Page 553
Средства функционального программирования: filter и reduce......Page 555
В заключение......Page 556
Закрепление пройденного......Page 557
Еще раз о генераторах списков: функциональные инструменты......Page 559
Еще раз об итераторах: генераторы......Page 566
Краткая сводка по синтаксису генераторов в 3.0......Page 582
Хронометраж итерационных альтернатив......Page 585
Типичные ошибки при работе с функциями......Page 595
В заключение......Page 599
Закрепление пройденного......Page 600
Часть V.
Модули......Page 604
Глава 21.
Модули: общая картина......Page 606
Архитектура программы на языке Python......Page 607
Как работает импорт......Page 611
Путь поиска модулей......Page 613
В заключение......Page 619
Закрепление пройденного......Page 620
Создание модуля......Page 622
Использование модулей......Page 623
Пространства имен модулей......Page 629
Повторная загрузка модулей......Page 634
В заключение......Page 638
Закрепление пройденного......Page 639
Основы операции импортирования пакетов......Page 640
Пример импортирования пакета......Page 644
Когда используется операция
импортирования пакетов?......Page 646
Импортирование относительно пакета......Page 649
В заключение......Page 662
Закрепление пройденного......Page 663
Сокрытие данных в модулях......Page 664
Включение будущих возможностей языка......Page 665
Смешанные режимы использования:
__name__ и __main__......Page 666
Изменение пути поиска модулей......Page 671
Расширение as для инструкций import и from......Page 672
Модули – это объекты: метапрограммы......Page 673
Импортирование модулей
по имени в виде строки......Page 676
Транзитивная перезагрузка модулей......Page 677
Концепции проектирования модулей......Page 680
Типичные проблемы при работе с модулями......Page 681
Закрепление пройденного......Page 687
Часть VI.
Классы и ООП......Page 692
Глава 25.
ООП: общая картина......Page 694
Зачем нужны классы?......Page 695
ООП с высоты 30 000 футов......Page 696
В заключение......Page 705
Закрепление пройденного......Page 706
Классы генерируют
множество экземпляров объектов......Page 708
Классы адаптируются посредством наследования......Page 712
Классы могут переопределять операторы языка Python......Page 716
Самый простой в мире класс на языке Python......Page 720
Классы и словари......Page 722
В заключение......Page 724
Закрепление пройденного......Page 725
Глава 27.
Более реалистичный пример......Page 727
Шаг 1: создание экземпляров......Page 728
Шаг 2: добавление методов, определяющих поведение......Page 732
Шаг 3: перегрузка операторов......Page 736
Шаг 4: адаптация поведения с помощью подклассов......Page 738
Шаг 5: адаптация конструкторов......Page 744
Шаг 6: использование инструментов интроспекции......Page 749
Шаг 7 (последний): сохранение объектов в базе данных......Page 756
Рекомендации на будущее......Page 762
В заключение......Page 764
Закрепление пройденного......Page 765
Инструкция class......Page 768
Методы......Page 771
Наследование......Page 774
Пространства имен: окончание истории......Page 780
Еще раз о строках документирования......Page 789
Классы и модули......Page 790
Закрепление пройденного......Page 791
Глава 29.
Перегрузка операторов......Page 793
Доступ к элементам по индексу и извлечение срезов: __getitem__ и __setitem__......Page 796
Итерации по индексам: __getitem__......Page 799
Итераторы: __iter__ и __next__......Page 801
Проверка на вхождение:
__contains__, __iter__ и __getitem__......Page 806
Обращения к атрибутам: __getattr__ и __setattr__......Page 808
Строковое представление объектов:
__repr__ и __str__......Page 811
Правостороннее сложение и операция приращения: __radd__ и __iadd__......Page 813
Операция вызова: __call__......Page 815
Функциональные интерфейсы
и программный код обратного вызова......Page 817
Сравнивание: __lt__, __gt__ и другие......Page 819
Проверка логического значения:
__bool__ и __len__......Page 820
В заключение......Page 824
Закрепление пройденного......Page 825
Python и ООП......Page 827
ООП и наследование:
взаимосвязи типа «является»......Page 829
ООП и композиция: взаимосвязи типа «имеет»......Page 831
ООП и делегирование: объекты-обертки......Page 836
Псевдочастные атрибуты класса......Page 838
Методы – это объекты:
связанные и несвязанные методы......Page 841
Множественное наследование: примесные классы......Page 848
Классы – это объекты:
универсальные фабрики объектов......Page 860
В заключение......Page 862
Закрепление пройденного......Page 863
Глава 31.
Дополнительные возможности классов......Page 864
Расширение встроенных типов......Page 865
Классы «нового стиля»......Page 868
Изменения в классах нового стиля......Page 869
Другие расширения в классах нового стиля......Page 879
Статические методы и методы класса......Page 886
Декораторы и метаклассы: часть 1......Page 895
Типичные проблемы при работе с классами......Page 900
В заключение......Page 906
Закрепление пройденного......Page 907
Часть VII.
Исключения и инструменты......Page 916
Глава 32.
Основы исключений......Page 918
Зачем нужны исключения?......Page 919
Обработка исключений: краткий обзор......Page 920
В заключение......Page 926
Закрепление пройденного......Page 927
Инструкция try/except/else......Page 928
Инструкция try/finally......Page 935
Объединенная инструкция try/except/finally......Page 938
Инструкция raise......Page 942
Инструкция assert......Page 945
Контекстные менеджеры with/as......Page 947
Закрепление пройденного......Page 951
Глава 34.
Объекты исключений......Page 953
Исключения: назад в будущее......Page 954
Исключения на основе классов......Page 955
В чем преимущества иерархий исключений?......Page 958
Классы встроенных исключений......Page 961
Определение текста исключения......Page 964
Передача данных в экземплярах
и реализация поведения......Page 965
В заключение......Page 967
Закрепление пройденного......Page 968
Вложенные обработчики исключений......Page 970
Идиомы исключений......Page 974
Советы по применению
и типичные проблемы исключений......Page 979
Заключение по основам языка......Page 983
В заключение......Page 989
Закрепление пройденного......Page 990
Часть VIII.
Расширенные возможности......Page 992
Глава 36.
Юникод и строки байтов......Page 994
Изменения в Python 3.0, касающиеся строк......Page 995
Основы строк......Page 996
Примеры использования строк в Python 3.0......Page 1002
Кодирование строк Юникода......Page 1005
Использование объектов bytes в Python 3.0......Page 1014
Использование объектов bytearray в 3.0 (и 2.6)......Page 1017
Использование текстовых и двоичных файлов......Page 1020
Использование файлов Юникода......Page 1025
Другие инструменты
для работы со строками в Python 3.0......Page 1030
В заключение......Page 1038
Закрепление пройденного......Page 1039
Зачем нужно управлять атрибутами?......Page 1042
Свойства......Page 1044
Дескрипторы......Page 1049
__getattr__ и __getattribute__......Page 1058
Пример: проверка атрибутов......Page 1077
Закрепление пройденного......Page 1083
Что такое декоратор?......Page 1086
Основы......Page 1089
Программирование декораторов функций......Page 1099
Программирование декораторов классов......Page 1115
Непосредственное управление
функциями и классами......Page 1126
Пример: «частные»
и «общедоступные» атрибуты......Page 1129
Пример: проверка аргументов функций......Page 1141
В заключение......Page 1154
Закрепление пройденного......Page 1155
Глава 39.
Метаклассы......Page 1159
Нужны или не нужны метаклассы......Page 1160
Модель метаклассов......Page 1167
Объявление метаклассов......Page 1171
Программирование метаклассов......Page 1172
Пример: добавление методов в классы......Page 1178
Пример: применение декораторов к методам......Page 1185
В заключение......Page 1193
Закрепление пройденного......Page 1194
Часть IX.
Приложения......Page 1196
Установка интерпретатора Python......Page 1198
Настройка Python......Page 1202
Параметры командной строки интерпретатора......Page 1207
Дополнительная информация......Page 1208
Часть I. Введение......Page 1210
Часть II. Типы и операции......Page 1213
Часть III. Инструкции и синтаксис......Page 1218
Часть IV. Функции......Page 1220
Часть V. Модули......Page 1228
Часть VI. Классы и ООП......Page 1232
Часть VII. Исключения и инструменты......Page 1240
Алфавитный указатель......Page 1248