Оглавление ....6
Содержание ....7
Об авторе ....22
Об иллюстрации на обложке ....22
Предисловие ....23
"Экосистема" этой книги ....23
О пятом издании ....24
Линейки Python 2.Х и Python З.Х ....26
Современная история Python 2.Х/З.Х ....26
Раскрытие линеек Python З.Х и Python 2.Х ....27
Какая версия Python должна использоваться? ....28
Предпосылки и усилия ....29
Структура этой книги ....30
Чем эта книга не является ....33
Это не справочник и не руководство по специфическим приложениям ....33
Это не краткая история для спешащих людей ....34
Изложение последовательно до той степени, до которой позволяет Python ....34
Программы в книге ....35
Версии Python ....35
Платформы ....36
Загрузка кода примеров для книги ....36
Использование кода, сопровождающего книгу ....36
Соглашения, используемые в этой книге ....37
Ждем ваших отзывов! ....37
Благодарности ....38
Предыстория ....38
Благодарности Python ....38
Личные благодарности ....39
ЧАСТЬ I Начало работы....40
ГЛАВА 1. Python в вопросах и ответах....41
Почему люди используют Python? ....41
Качество программного обеспечения ....43
Продуктивность труда разработчиков ....43
Является ли Python "языком написания сценариев"? ....44
Хорошо, но в чем недостаток? ....45
Кто использует Python в наши дни? ....47
Что можно делать с помощью Python? ....49
Системное программирование ....49
Графические пользовательские интерфейсы ....50
Написание сценариев для Интернета ....50
Интеграция компонентов ....51
Программирование для баз данных ....51
Быстрое прототипирование ....52
Численное и научное программирование ....52
И еще: игры, изображения, глубинный анализ данных, роботы, электронные таблицы Excel... ....53
Как Python разрабатывается и поддерживается? ....54
Компромиссы, связанные с открытым кодом ....54
Каковы технические превосходства Python? ....55
Он объектно-ориентированный и функциональный ....55
Он бесплатный ....56
Он переносимый ....56
Он мощный ....57
Он смешиваемый ....58
Он относительно прост в использовании ....58
Он относительно прост в изучении ....59
Он назван в честь группы "Монти Пайтон” ....59
Как Python соотносится с языком X? ....60
Резюме ....61
Проверьте свои знания: контрольные вопросы ....62
Проверьте свои знания: ответы ....62
ГЛАВА 2. Как Python выполняет программы....65
Введение в интерпретатор Python ....65
Выполнение программ ....67
Точка зрения программиста ....67
Точка зрения Python ....68
Разновидности модели выполнения ....71
Альтернативные реализации Python ....71
Инструменты оптимизации выполнения ....74
Фиксированные двоичные файлы ....76
Будущие возможности? ....77
Резюме ....77
Проверьте свои знания: контрольные вопросы ....78
Проверьте свои знания: ответы ....78
ГЛАВА 3. Как пользователь выполняет программы....79
Интерактивная подсказка ....79
Запуск интерактивного сеанса ....80
Пути поиска в системе ....82
Новые возможности для Windows в версии Python 3.3: переменная среды path и запускающий модуль ....82
Где выполнять: каталоги для кода ....83
Что не набирать: приглашения к вводу и комментарии ....84
Интерактивное выполнение кода ....85
Для чего нужна интерактивная подсказка? ....86
Замечания по использованию: интерактивная подсказка ....88
Командная строка системы и файлы ....90
Первый сценарий ....91
Запуск файлов в командной строке ....92
Варианты использования командной строки ....93
Замечания по использованию: командная строка и файлы ....94
Исполняемые сценарии в стиле Unix: #! ....95
Основы сценариев Unix ....95
Трюк с поиском посредством env в Unix ....96
Запускающий модуль для Windows в версии Python 3.3: #! приходит в Windows....96
Щелчки на значках файлов ....98
Основы щелчков на значках ....98
Щелчки на значках в Windows ....99
Трюк с использованием функции input в Windows ....100
Другие ограничения, связанные со щелчками на значках ....102
Импортирование и повторная загрузка модулей ....102
Основы импортирования и повторной загрузки ....102
Дополнительная история о модулях: атрибуты ....104
Замечания по использованию: import и reload ....107
Использование ехес для выполнения файлов модулей ....108
Пользовательский интерфейс IDLE ....109
Детали запуска IDLE ....110
Базовое использование IDLE ....111
Удобные функциональные возможности IDLE ....112
Расширенные инструменты IDLE ....113
Замечания по использованию: IDLE ....113
Другие IDE-среды ....115
Другие варианты запуска ....117
Встраивание вызовов ....117
Фиксированные двоичные исполняемые файлы ....118
Варианты запуска из текстовых редакторов ....118
Прочие варианты запуска ....118
Будущие возможности? ....119
Какой вариант должен использоваться? ....119
Резюме ....121
Проверьте свои знания: контрольные вопросы ....121
Проверьте свои знания: ответы ....122
Проверьте свои знания: упражнения для части I ....123
ЧАСТЬ II Типы и операции....126
ГЛАВА 4. ведение в типы объектов Python....127
Концептуальная иерархия Python ....127
Для чего используются встроенные типы? ....128
Основные типы данных Python ....129
Числа ....131
Строки ....132
Операции над последовательностями ....133
Неизменяемость ....135
Методы, специфичные для типа ....136
Получение справки ....137
Другие способы написания строк ....138
Строки Unicode ....139
Сопоставление с образцом ....142
Списки ....142
Операции над последовательностями ....142
Операции, специфичные для типа ....143
Контроль границ ....143
Вложение ....144
Списковые включения ....145
Словари ....147
Операции над отображениями ....147
Снова о вложении ....148
Недостающие ключи: проверки if ....150
Сортировка ключей: циклы for ....151
Итерация и оптимизация ....153
Кортежи ....154
Для чего используются кортежи? ....155
Файлы ....155
Файлы с двоичными байтами ....156
Файлы с текстом Unicode ....157
Другие инструменты, подобные файлам ....159
Прочие основные типы ....159
Как нарушить гибкость кода ....161
Классы, определяемые пользователем ....162
Все остальное ....163
Резюме ....163
Проверьте свои знания: контрольные вопросы ....164
Проверьте свои знания: ответы ....164
ГЛАВА 5. Числовые типы....166
Основы числовых типов ....166
Числовые литералы ....167
Встроенные инструменты для обработки объектов чисел ....169
Операции выражений Python ....169
Числа в действии ....174
Переменные и базовые выражения ....174
Форматы числового отображения ....176
Сравнения: нормальные и сцепленные ....177
Деление: классическое, с округлением ....179
в меньшую сторону и настоящее ....179
Точность целых чисел ....183
Комплексные числа ....184
Шестнадцатеричная, восьмеричная и двоичная формы записи: литералы и преобразования ....184
Побитовые операции ....186
Другие встроенные инструменты для обработки чисел ....188
Другие числовые типы ....190
Десятичные типы ....190
Дробный тип ....193
Множества ....196
Булевские значения ....204
Численные расширения ....205
Резюме ....206
Проверьте свои знания: контрольные вопросы ....206
Проверьте свои знания: ответы ....206
ГЛАВА 6. Кратко о динамической типизации....208
Случай отсутствия операторов объявления ....208
Переменные, объекты и ссылки ....209
Типы обитают в объектах, не в переменных ....211
Объекты подвергаются сборке мусора ....211
Разделяемые ссылки ....213
Разделяемые ссылки и изменения на месте ....215
Разделяемые ссылки и равенство ....216
Динамическая типизация вездесуща ....218
Резюме ....219
Проверьте свои знания: контрольные вопросы ....219
Проверьте свои знания: ответы ....219
ГЛАВА 7. Фундаментальные основы строк....220
Вопросы, раскрываемые в главе ....220
Unicode: краткая история ....221
Основы строк ....221
Строковые литералы ....223
Строки в одинарных и двойных кавычках являются одинаковыми ....224
Управляющие последовательности представляют специальные символы ....224
Неформатированные строки подавляют управляющие последовательности ....228
Утроенные кавычки представляют многострочные блочные строки ....229
Строки в действии ....231
Базовые операции ....231
Индексация и нарезание ....232
Инструменты преобразования строк ....236
Изменение строк, часть I ....239
Строковые методы ....240
Синтаксис вызова методов ....240
Методы строк ....241
Примеры строковых методов: изменение строк, часть II ....242
Примеры строковых методов: разбор текста ....244
Другие распространенные строковые методы в действии ....245
функции первоначального модуля string (изъяты из Python З.Х)....246
Выражения форматирования строк ....247
Основы выражений форматирования ....248
Расширенный синтаксис выражений форматирования ....249
Более сложные примеры использования выражений форматирования ....250
Выражения форматирования, основанные на словаре ....251
Вызовы методов форматирования строк ....252
Основы методов форматирования ....252
Добавление ключей, атрибутов и смещений ....253
Расширенный синтаксис методов форматирования ....254
Более сложные примеры использования методов форматирования ....255
Сравнение с выражением форматирования % ....257
Для чего используется метод format? ....260
Общие категории типов ....265
Типы разделяют наборы операций по категориям ....265
Изменяемые типы можно модифицировать на месте ....266
Резюме ....267
Проверьте свои знания: контрольные вопросы ....267
Проверьте свои знания: ответы ....268
ГЛАВА 8. Списки и словари....269
Списки ....269
Списки в действии ....271
Базовые списковые операции ....272
Итерация по спискам и списковые включения ....272
Индексация, нарезание и матрицы ....273
Изменение списков на месте ....274
Словари ....280
Словари в действии ....281
Базовые словарные операции ....282
Изменение словарей на месте ....283
Дополнительные словарные методы ....284
Пример: база данных о фильмах ....286
Замечания по использованию словарей ....288
Другие способы создания словарей ....292
Изменения в словарях в Python З.Х и 2.7 ....294
Резюме ....301
Проверьте свои знания: контрольные вопросы ....302
Проверьте свои знания: ответы ....302
ГЛАВА 9. Кортежи, файлы и все остальное....303
Кортежи ....304
Кортежи в действии ....305
Для чего используются списки и кортежи? ....308
Снова о записях: именованные кортежи ....308
Файлы ....310
Открытие файлов ....311
Использование файлов ....312
Файлы в действии ....314
Кратко о текстовых и двоичных файлах ....315
Хранение объектов Python в файлах: преобразования ....316
Хранение собственных объектов Python: модуль pickle ....318
Хранение объектов Python в формате JSON ....319
Хранение упакованных двоичных данных: модуль struct ....321
Диспетчеры контекстов для файлов ....322
Другие файловые операции ....323
Обзор и сводка по основным типам ....324
Гибкость объектов ....325
Ссылки или копии ....327
Сравнения, равенство и истинность ....329
Смысл понятий "истина" и "ложь" в Python ....332
Иерархии типов Python ....334
Объекты type ....334
Прочие типы в Python ....336
Затруднения, связанные со встроенными типами ....336
Присваивание создает ссылки, а не копии ....337
Повторение добавляет один уровень глубины ....337
Остерегайтесь циклических структур данных ....338
Неизменяемые типы нельзя модифицировать на месте ....339
Резюме ....339
Проверьте свои знания: контрольные вопросы ....340
Проверьте свои знания: ответы ....340
Проверьте свои знания: упражнения для части II ....341
ЧАСТЬ III Операторы и синтаксис....344
ГЛАВА 10. Введение в операторы Python....345
Еще раз о концептуальной иерархии Python ....345
Операторы Python ....346
История о двух if ....348
Что Python добавляет ....348
Что Python устраняет ....349
Для чего используется синтаксис с отступами? ....350
Несколько специальных случаев ....353
Короткий пример: интерактивные циклы ....355
Простой интерактивный пример ....355
Выполнение математических действий ....357
над пользовательским вводом ....357
Обработка ошибок путем проверки ввода ....358
Обработка ошибок с помощью оператора try ....359
Вложение кода на три уровня в глубину ....360
Резюме ....362
Проверьте свои знания: контрольные вопросы ....362
Проверьте свои знания: ответы ....362
ГЛАВА 11. Операторы присваивания, выражений и вывода....363
Операторы присваивания ....363
Формы оператора присваивания ....364
Присваивание последовательности ....365
Расширенная распаковка последовательностей в Python З.Х ....368
Групповые присваивания ....372
Дополненные присваивания ....373
Правила именования переменных ....376
Операторы выражений ....380
Операторы выражений и изменения на месте ....381
Операции вывода ....381
Функция print в Python З.Х ....382
Оператор print в Python 2.Х ....385
Перенаправление потока вывода ....386
Вывод, нейтральный к версии ....390
Резюме ....393
Проверьте свои знания: контрольные вопросы ....394
Проверьте свои знания: ответы ....394
ГЛАВА 12. Проверки if и правила синтаксиса....395
Операторы if ....395
Общий формат ....395
Элементарные примеры ....396
Множественное ветвление ....396
Снова о синтаксисе Python ....399
Ограничители блоков: правила отступов ....400
Ограничители операторов: строки и продолжения ....402
Несколько особых случаев ....403
Значения истинности и булевские проверки ....405
Тернарное выражение if/else ....406
Резюме ....409
Проверьте свои знания: контрольные вопросы ....410
Проверьте свои знания: ответы ....410
ГЛАВА 13. Циклы while и for....411
Циклы while ....411
Общий формат ....411
Примеры ....412
Операторы break, continue, pass и конструкция else цикла....413
Общий формат цикла ....413
Оператор pass ....413
Оператор continue ....415
Оператор break ....415
Конструкция else цикла ....416
Циклы for ....418
Общий формат ....419
Примеры ....419
Методики написания циклов ....426
Циклы с подсчетом: range ....426
Просмотр последовательностей: while и range или for ....427
Тасование последовательностей: range и len ....428
Неполный обход: range или срезы ....429
Изменение списков: range или включения ....430
Параллельные обходы: zip и тар ....431
Генерация смещений и элементов: enumerate ....434
Резюме ....437
Проверьте свои знания: контрольные вопросы ....438
Проверьте свои знания: ответы ....438
ГЛАВА 14. Итерации и включения....439
Итерации: первый взгляд ....439
Протокол итерации: итераторы файловых объектов ....440
Ручная итерация: iter и next ....443
Итерируемые объекты других встроенных типов ....446
Списковые включения: первый подробный взгляд ....448
Основы списковых включений ....449
Использование списковых включений с файлами ....450
Расширенный синтаксис списковых включений ....452
Другие итерационные контексты ....454
Новые итерируемые объекты в Python З.Х ....458
Влияние на код Python 2.Х: доводы за и против ....458
Итерируемый объект range ....459
Итерируемые объекты map, zip и filter ....460
Итераторы с множеством проходов или с одним проходом ....462
Итерируемые словарные представления ....463
Другие темы, связанные с итерацией ....465
Резюме ....465
Проверьте свои знания: контрольные вопросы ....466
Проверьте свои знания: ответы ....466
ГЛАВА 15. Документация....467
Источники документации Python ....467
Комментарии # ....468
Функция dir ....468
Строки документации: doc ....470
PyDoc: функция help ....473
PyDoc: отчеты в формате HTML ....476
За рамками строк документации: Sphinx ....484
Стандартный набор руководств ....484
Веб-ресурсы ....485
Изданные книги ....486
Распространенные затруднения ....486
при написании кода ....486
Резюме ....488
Проверьте свои знания: контрольные вопросы ....489
Проверьте свои знания: ответы ....489
Проверьте свои знания: упражнения для части III ....490
ЧАСТЬ IV Функции и генераторы....492
ГЛАВА 16. Основы функций....493
Для чего используются функции? ....494
Написание кода функций ....495
Операторы def ....497
Оператор def исполняется во время выполнения ....497
Первый пример: определения и вызовы ....498
Определение ....498
Вызов ....498
Полиморфизм в Python ....499
Второй пример: пересечение последовательностей ....500
Определение ....501
Вызов ....501
Еще раз о полиморфизме ....502
Локальные переменные ....503
Резюме ....503
Проверьте свои знания: контрольные вопросы ....504
Проверьте свои знания: ответы ....504
ГЛАВА 17. Области видимости....505
Основы областей видимости в Python ....505
Детали, касающиеся областей видимости ....506
Распознавание имен: правило LEGB ....508
Пример области видимости ....511
Встроенная область видимости ....512
Оператор global ....515
Проектирование программы: минимизируйте количество глобальных переменных ....516
Проектирование программы: минимизируйте количество межфайловых изменений ....517
Другие способы доступа к глобальным переменным ....519
Области видимости и вложенные функции ....520
Детали вложенных областей видимости ....520
Примеры вложенных областей видимости ....520
Фабричные функции: замыкания ....521
Сохранение состояния из объемлющей области видимости с помощью стандартных значений ....524
Оператор nonlocal в Python З.Х ....528
Основы оператора nonlocal ....528
Оператор nonlocal в действии ....530
Для чего используются оператор nonlocal? Варианты сохранения состояния ....532
Состояние с помощью оператора nonlocal: только Python З.Х ....532
Состояние с помощью глобальных переменных: только одиночная копия ....533
Состояние с помощью классов: явные атрибуты (предварительный обзор) ....534
Состояние с помощью атрибутов функций: Python З.Х и 2.Х ....535
Резюме ....539
Проверьте свои знания: контрольные вопросы ....540
Проверьте свои знания: ответы ....541
ГЛАВА 18. Аргументы....542
Основы передачи аргументов ....542
Аргументы и разделяемые ссылки ....543
Избегайте модификации изменяемых аргументов ....545
Эмуляция выходных параметров и множественных результатов ....546
Специальные режимы сопоставления аргументов ....547
Основы сопоставления аргументов ....548
Синтаксис сопоставления аргументов ....549
Особенности использования специальных режимов сопоставления ....550
Примеры ключевых слов и стандартных значений ....551
Примеры произвольного количества аргументов ....553
Аргументы с передачей только по ключевым словам Python З.Х ....558
Функция min ....561
Основная задача ....562
Дополнительные очки ....563
Заключение ....564
Обобщенные функции для работы с множествами ....564
Эмуляция функции print из Python З.Х ....566
Использование аргументов с передачей только по ключевым словам....568
Резюме ....570
Проверьте свои знания: контрольные вопросы ....570
Проверьте свои знания: ответы ....571
ГЛАВА 19. Расширенные возможности функций....572
Концепции проектирования функций ....572
Рекурсивные функции ....574
Суммирование с помощью рекурсии ....575
Альтернативные варианты кода ....575
Операторы цикла или рекурсия ....577
Обработка произвольных структур ....577
Объекты функций: атрибуты и аннотации ....581
Косвенные вызовы функций: "первоклассные" объекты ....581
Интроспекция функций ....582
Аннотации функций в Python З.Х ....584
Анонимные функции: выражения lambda ....586
Основы выражения lambda ....587
Для чего используется выражение lambda? ....588
Как (не) запутать свой код на Python ....590
Области видимости: выражения lambda также могут быть вложенными ....591
Инструменты функционального программирования ....592
Отображение функций на итерируемые объекты: тар ....593
Выбор элементов из итерируемых объектов: filter ....595
Комбинирование элементов из итерируемых объектов: reduce ....595
Резюме ....597
Проверьте свои знания: контрольные вопросы ....597
Проверьте свои знания: ответы ....597
ГЛАВА 20. Включения и генераторы....599
Списковые включения и инструменты функционального программирования ....599
Списковые включения или тар ....600
Добавление проверок и вложенных циклов: filter ....601
Пример: списковые включения и матрицы ....604
Не злоупотребляйте списковыми включениями: KISS ....606
Генераторные функции и выражения ....609
Генераторные функции: yield или return ....609
Генераторные выражения: итерируемые объекты встречаются с включениями ....615
Генераторные функции или генераторные выражения ....619
Генераторы являются объектами с одиночной итерацией ....621
Генерация во встроенных типах, инструментах и классах ....624
Пример: генерация перемешанных последовательностей ....627
Не злоупотребляйте генераторами: EIBTI ....632
Пример: эмуляция zip и шар с помощью итерационных инструментов ....634
Сводка по синтаксису включений ....640
Области видимости и переменные включений ....640
Осмысление включений множеств и словарей ....642
Расширенный синтаксис включений для множеств и словарей ....643
Резюме ....643
Проверьте свои знания: контрольные вопросы ....644
Проверьте свои знания: ответы ....644
ГЛАВА 21. Оценочные испытания....646
Измерение времени выполнения итерационных альтернатив ....646
Модуль измерения времени: любительский ....647
Сценарий измерения времени ....652
Результаты измерения времени ....653
Альтернативные версии модуля для измерения времени ....656
Другие варианты ....659
Измерение времени выполнения итераций и версий Python с помощью модуля timeit ....660
Базовое использование timeit ....660
Модуль и сценарий оценочных испытаний: timeit ....665
Результаты запуска сценария оценочных испытаний ....667
Продолжаем забавляться с оценочными испытаниями ....669
Другие темы, связанные с оценочными испытаниями: тест руstone ....673
Затруднения, связанные с функциями ....674
Локальные имена распознаются статически ....674
Стандартные значения и изменяемые объекты ....676
Функции без операторов return ....678
Прочие затруднения, связанные с функциями ....678
Резюме ....679
Проверьте свои знания: контрольные вопросы ....679
Проверьте свои знания: ответы ....680
Проверьте свои знания: упражнения для части IV ....680
ЧАСТЬ V Модули и пакеты....684
ГЛАВА 22. Модули: общая картина....685
Для чего используются модули? ....685
Архитектура программы Python ....686
Структурирование программы ....687
Импортирование и атрибуты ....687
Стандартные библиотечные модули ....689
Как работает импортирование ....690
1. Поиск файла модуля ....690
2. Компиляция файла модуля (возможная) ....691
3. Выполнение файла модуля ....692
Файлы байт-кода: pycacheв Python 3.2+ ....692
Модели файлов байт-кода в действии ....693
Путь поиска модулей ....694
Конфигурирование пути поиска ....697
Вариации пути поиска ....697
Список sys.path ....698
Выбор файла модуля ....699
Резюме ....701
Проверьте свои знания: контрольные вопросы ....702
Проверьте свои знания: ответы ....702
ГЛАВА 23. Основы написания модулей....703
Создание модулей ....703
Имена файлов модулей ....703
Другие виды модулей ....704
Использование модулей ....704
Оператор import ....704
Оператор from ....705
Оператор from * ....705
Операции импортирования происходят только однократно ....706
Операторы import и from являются присваиваниями ....707
Эквивалентность import и from ....708
Потенциальные затруднения, связанные с оператором from ....709
Пространства имен модулей ....710
Файлы генерируют пространства имен ....710
Словари пространств имен: _idiet ....712
Уточнение имен атрибутов ....713
Импортирование или области видимости ....713
Вложение пространств имен ....714
Перезагрузка модулей ....715
Основы использования reload ....716
Пример использования reload ....717
Резюме ....719
Проверьте свои знания: контрольные вопросы ....719
Проверьте свои знания: ответы ....720
ГЛАВА 24. Пакеты модулей....721
Основы импортирования пакетов ....722
Пакеты и настройки пути поиска ....722
Файлы init .ру пакетов ....723
Пример импортирования пакетов ....725
Использование from или import с пакетами ....727
Для чего используется импортирование пакетов? ....728
История о трех системах ....728
Относительное импортирование пакетов ....731
Изменения в Python З.Х ....732
Основы относительного импортирования ....733
Для чего используются операции относительного импортирования? ....734
Границы действия операций относительного импортирования ....737
Сводка по правилам поиска модулей ....737
Операции относительного импортирования в действии ....738
Затруднения, связанные с операциями импортирования относительно пакетов: смешанное использование ....743
Пакеты пространств имен, введенные в Python 33 ....749
Семантика пакетов пространств имен ....750
Влияние на обычные пакеты: необязательность init .ру ....751
Пакеты пространств имен в действии ....752
Вложение пакетов пространств имен ....753
Файлы по-прежнему имеют приоритет над каталогами ....754
Резюме ....757
Проверьте свои знания: контрольные вопросы ....757
Проверьте свои знания: ответы ....757
ГЛАВА 25. Расширенные возможности модулей....759
Концепции проектирования модулей ....759
Сокрытие данных в модулях ....761
Сведение к минимуму вреда от from *: _х и all ....761
Включение будущих языковых средств: future....762
Смешанные режимы использования: name и main....763
Модульное тестирование с помощью name....764
Пример: код с двойным режимом ....765
Символы валют: Unicode в действии ....768
Строки документации: документация по модулям в работе ....770
Изменение пути поиска модулей ....771
Расширение as для операторов import и from ....772
Пример: модули являются объектами ....773
Импортирование модулей по строкам с именами....776
Выполнение строк с кодом ....776
Прямые вызовы: два варианта ....777
Пример: транзитивная перезагрузка модулей ....778
Инструмент рекурсивной перезагрузки ....778
Альтернативные реализации ....781
Затруднения, связанные с модулями ....785
Конфликты имен модулей: операции импортирования пакетов и относительно пакетов ....785
Порядок следования операторов в коде верхнего уровня имеет значение ....786
Оператор from копирует имена, но не ссылки на них ....787
Форма оператора from* может сделать ....788
неясным смысл переменных ....788
Функция reload может не оказывать влияния на результаты операторов импортирования from ....788
reload, from и тестирование в интерактивном сеансе ....789
Рекурсивные операции импортирования from могут не работать ....790
Резюме ....791
Проверьте свои знания: контрольные вопросы ....792
Проверьте свои знания: ответы ....792
Проверьте свои знания: упражнения для части V ....793
ПРИЛОЖЕНИЕ Решения упражнений, приводимых в конце частей....795
Часть I, "Начало работы" ....795
Часть II, "Типы и операции" ....798
Часть III, "Операторы и синтаксис" ....804
Часть IV, "функции и генераторы" ....806
Часть М, "Модули и пакеты" ....816
Предметный указатель ....820
С помощью этой практической книги вы получите всестороннее и глубокое введение в основы языка Python. Будучи основанным на популярном учебном курсе Марка Лутца, обновленное 5-е издание книги поможет вам быстро научиться писать эффективный высококачественный код на Python. Она является идеальным способом начать изучение Python, будь вы новичок в программировании или профессиональный разработчик программного обеспечения на других языках. .Это простое и понятное учебное пособие, укомплектованное контрольными вопросами, упражнениями и полезными иллюстрациями, позволит вам освоить основы линеек Python 3.X и 2.Х. Вы также ознакомитесь с расширенными возможностями языка, получившими широкое распространение в коде Python.