Главная страница
Навигация по странице:

  • Марк Саммерфилд

  • ISBN: 9785932861615 ISBN: 9780137129294 (англ)

  • Оглавление Введение

  • 2. Типы данных

  • 3. Типы коллекций

  • 4. Управляющие структуры и функции

  • 6. Объектноориентированное программирование

  • 7. Работа с файлами

  • Программирование на Python 3. Руководство издательство СимволПлюс


    Скачать 3.74 Mb.
    НазваниеРуководство издательство СимволПлюс
    Дата10.11.2022
    Размер3.74 Mb.
    Формат файлаpdf
    Имя файлаПрограммирование на Python 3.pdf
    ТипРуководство
    #780382
    страница1 из 74
      1   2   3   4   5   6   7   8   9   ...   74

    МАРК САММЕРФИЛД
    ПРОГР
    АММИРОВАНИЕ НА
    ПОДРОБНОЕ
    РУКОВОДСТВО
    Издательство «СимволПлюс»
    (812) 3245353, (495) 9458100
    www.symbol.ru
    Óðîâåíü ïîäãîòîâêè
    ÷èòàòåëåé:
    ñðåäíèé
    Êàòåãîðèÿ:
    ïðîãðàììèðîâàíèå / Python
    Марк Саммерфилд
    дипломированный специалист в области информатики, обладаю
    щий многолетним опытом работы в индустрии производства ПО, но в первую очередь – практикую
    щий программист. Почти три года он работал менеджером отдела до
    кументирования в компании Troll
    tech, руководил техническим жур
    налом «Qt Quarterly» этой компа
    нии . (В настоящее время Trolltech является подразделением Qt Soft
    ware в компании Nokia.)
    Марк является автором книги
    «Rapid GUI Programming with Py
    thon and Qt: The Definitive Guide to PyQt Programming» (Addison
    Wesley, 2008), а также соавтором
    «C++ GUI Programming with Qt 4»
    (AddisonWesley, 2006).
    Марк владеет собственной кон
    салтинговой и тренинговой компа
    нией Qtrac Ltd., где работает в ка
    честве независимого автора, ре
    дактора, преподавателя и консуль
    танта, специализируясь на C++, Qt,
    Python и PyQt.
    Третья версия языка Python сделала его еще более мощ
    ным, удобным, логичным и выразительным. Книга «Про
    граммирование на Python 3» написана одним из ведущих специалистов по этому языку, обладающим многолетним опытом работы с ним. Издание содержит все необходи
    мое для практического освоения языка: написания любых программ с использованием как стандартной библиотеки,
    так и сторонних библиотек для языка Python 3, а также создания собственных библиотечных модулей.
    Автор начинает с описания ключевых элементов Py
    thon, знание которых необходимо в качестве базовых по
    нятий. Затем обсуждаются более сложные темы, поданные так, чтобы читатель мог постепенно наращивать свой опыт.
    В книге рассматриваются:
    • Разработка ПО на языке Python с использованием про
    цедурной, объектноориентированной и функциональ
    ной парадигм
    • Создание собственных пакетов и модулей
    • Запись и чтение двоичных и текстовых файлов, а также файлов в формате XML, включая возможность дополни
    тельного сжатия, произвольного доступа и парсинга
    Использование возможностей сложных типов данных,
    коллекций, управляющих структур и функций
    • Распределение вычислительной нагрузки между несколь
    кими процессами и потоками выполнения
    • Создание приложений для работы с базами данных SQL
    и с файлами DBM, в которых информация хранится в виде пар ключзначение
    • Использование миниязыка и модуля регулярных вы
    ражений в языке Python
    • Создание удобных, эффективных приложений с гра
    фическим интерфейсом
    • Передовые приемы программирования, включая гене
    раторы, декораторы функций и классов, менеджеры контекста, дескрипторы, абстрактные базовые классы,
    метаклассы и многое другое
    Книга может служить как учебником, так и справочни
    ком. Текст сопровождается многочисленными примерами,
    доступными на специальном сайте издания. Весь код при
    меров был протестирован с окончательным релизом Py
    thon 3 в ОС Windows, Linux и Mac OS X.
    ,6%1
      
    P
    ython
    3

    Mark Summerfield
    Python 3
    Programming in
    A Complete Introduction to the Python Language

    Марк Саммерфилд
    на
    Python 3
    СанктПетербург–Москва
    2009
    Подробное руководство
    Программирование

    Серия «High tech»
    Марк Саммерфилд
    Программирование на Python 3
    Подробное руководство
    Перевод А. Киселева
    Главный редактор
    А. Галунов
    Зав. редакцией
    Н. Макарова
    Выпускающий редактор
    П. Щеголев
    Редактор
    Ю. Бочина
    Корректор
    С. Николаева
    Верстка
    Д. Орлова
    Саммерфилд М.
    Программирование на Python 3. Подробное руководство. – Пер. с англ. – СПб.:
    СимволПлюс, 2009. – 608 с., ил.
    ISBN: 9785932861615
    Третья версия языка Python сделала его еще более мощным, удобным, логич
    ным и выразительным. Книга «Программирование на Python 3» написана од
    ним из ведущих специалистов по этому языку, обладающим многолетним опытом работы с ним. Издание содержит все необходимое для практического освоения языка: написания любых программ с использованием как стандарт
    ной библиотеки, так и сторонних библиотек для языка Python 3, а также со
    здания собственных библиотечных модулей.
    Автор начинает с описания ключевых элементов Python, знание которых необ
    ходимо в качестве базовых понятий. Затем обсуждаются более сложные темы,
    поданные так, чтобы читатель мог постепенно наращивать свой опыт: распре
    деление вычислительной нагрузки между несколькими процессами и потока
    ми, использование сложных типов данных, управляющих структур и функ
    ций, создание приложений для работы с базами данных SQL и с файлами DBM.
    Книга может служить как учебником, так и справочником. Текст сопровожда
    ется многочисленными примерами, доступными на специальном сайте изда
    ния. Весь код примеров был протестирован с окончательным релизом Python 3
    в ОС Windows, Linux и Mac OS X.
    ISBN: 9785932861615
    ISBN: 9780137129294 (англ)
    © Издательство СимволПлюс, 2009
    Authorized translation of the English edition © 2009 Pearson Education, Inc. This translation is published and sold by permission of Pearson Education, 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 – книги и брошюры.
    Подписано в печать 29.04.2009. Формат 70х100 1
    /16
    . Печать офсетная.
    Объем 38 печ. л. Тираж 1500 экз. Заказ №
    Отпечатано с готовых диапозитивов в ГУП «Типография «Наука»
    199034, СанктПетербург, 9 линия, 12.

    Памяти Франко Рабайотти
    (Franco Rabaiotti)
    1961–2001

    Оглавление
    Введение
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
    1. Быстрое введение в процедурное программирование
    . . . . . . . . . 21
    Создание и запуск программ на языке Python
    . . . . . . . . . . . . . . . . . . . . . 22
    «Золотой запас» Python
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
    Составляющая №1: Типы данных
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
    Составляющая №2: ссылки на объекты
    . . . . . . . . . . . . . . . . . . . . . . . . 29
    Составляющая №3: коллекции данных
    . . . . . . . . . . . . . . . . . . . . . . . . 32
    Составляющая №4: логические операции
    . . . . . . . . . . . . . . . . . . . . . . 36
    Составляющая №5: инструкции управления потоком выполнения
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
    Составляющая №6: арифметические операторы
    . . . . . . . . . . . . . . . . . 45
    Составляющая №7: ввод/вывод
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
    Составляющая №8: создание и вызов функций
    . . . . . . . . . . . . . . . . . 52
    Примеры
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
    bigdigits.py
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
    generate_grid.py
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
    В заключение
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
    Упражнения
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
    2. Типы данных
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
    Идентификаторы и ключевые слова
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
    Целочисленные типы
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
    Целые числа
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
    Логические значения
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
    Тип чисел с плавающей точкой
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
    Числа с плавающей точкой
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
    Комплексные числа
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
    Числа типа Decimal
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
    Строки
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
    Сравнение строк
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
    Получение срезов строк
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
    Операторы и методы строк
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

    8
    Оглавление
    Форматирование строк с помощью метода str.format()
    . . . . . . . . . 100
    Кодировки символов
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
    Примеры
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
    quadratic.py
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
    csv2html.py
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
    В заключение
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
    Упражнения
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
    3. Типы коллекций
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
    Последовательности
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
    Кортежи
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
    Именованные кортежи
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
    Списки
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
    Множества
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
    Тип set
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
    Тип frozenset
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
    Отображения
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
    Словари
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
    Словари со значениями по умолчанию
    . . . . . . . . . . . . . . . . . . . . . . . 161
    Обход в цикле и копирование коллекций
    . . . . . . . . . . . . . . . . . . . . . . . . 163
    Итераторы, функции и операторы для работы с итерируемыми объектами
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
    Копирование коллекций
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
    Примеры
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
    generate_usernames.py
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
    statistics.py
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
    В заключение
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
    Упражнения
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
    4. Управляющие структуры и функции
    . . . . . . . . . . . . . . . . . . . . . . . . . 188
    Управляющие структуры
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
    Условное ветвление
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
    Циклы
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
    Обработка исключений
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
    Перехват и возбуждение исключений
    . . . . . . . . . . . . . . . . . . . . . . . . . 193
    Собственные исключения
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
    Собственные функции
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
    Имена и строки документирования
    . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
    Распаковывание аргументов и параметров
    . . . . . . . . . . . . . . . . . . . . 210
    Доступ к переменным в глобальной области видимости
    . . . . . . . . . 213
    Лямбдафункции
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
    Утверждения
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
    Пример: make_html_skeleton.py
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218

    Оглавление
    9
    В заключение
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
    Упражнения
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
    5. Модули
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
    Модули и пакеты
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
    Пакеты
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
    Собственные модули
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
    Обзор стандартной библиотеки языка Python
    . . . . . . . . . . . . . . . . . . . . 248
    Обработка строк
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
    Работа с аргументами командной строки
    . . . . . . . . . . . . . . . . . . . . . . 250
    Математические вычисления и числа
    . . . . . . . . . . . . . . . . . . . . . . . . . 252
    Время и дата
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
    Алгоритмы и типы коллекций
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254
    Форматы файлов, кодировки и сохранение данных
    . . . . . . . . . . . . . 256
    Работа с файлами, каталогами и процессами
    . . . . . . . . . . . . . . . . . . 260
    Работа с сетями и Интернетом
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
    XML
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
    Прочие модули
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
    В заключение
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
    Упражнение
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
    6. Объектноориентированное программирование
    . . . . . . . . . . . . . 273
    Объектноориентированный подход
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
    Объектноориентированные концепции и терминология
    . . . . . . . . 275
    Собственные классы
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
    Атрибуты и методы
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
    Наследование и полиморфизм
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
    Использование свойств для управления доступом к атрибутам
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
    Создание полных и полностью интегрированных типов данных
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
    Собственные классы коллекций
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
    Создание классов, включающих коллекции
    . . . . . . . . . . . . . . . . . . . 306
    Создание классов коллекций посредством агрегирования
    . . . . . . . 314
    Создание классов коллекций посредством наследования
    . . . . . . . . 321
    В заключение
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
    Упражнения
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
    7. Работа с файлами
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
    Запись и чтение двоичных данных
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
    Консервирование с возможным сжатием
    . . . . . . . . . . . . . . . . . . . . . 341
    Неформатированные двоичные данные с возможным сжатием
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348

    10
    Оглавление
    Запись и синтаксический анализ текстовых файлов
    . . . . . . . . . . . . . . 356
    Запись текста
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
    Синтаксический анализ текста
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
    Синтаксический анализ текста с помощью регулярных выражений
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
    Запись и синтаксический анализ файлов XML
    . . . . . . . . . . . . . . . . . . . 364
    Деревья элементов
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
    DOM (Document Object Model – объектная модель документа)
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
    Запись файла XML вручную
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
    Синтаксический анализ файлов XML с помощью SAX
    (Simple API for XML – упрощенный API для XML)
    . . . . . . . . . . . . . 373
    Произвольный доступ к двоичным данным в файлах
    . . . . . . . . . . . . . . 376
    Универсальный класс BinaryRecordFile
    . . . . . . . . . . . . . . . . . . . . . . . 377
    Пример: классы в модуле BikeStock
    . . . . . . . . . . . . . . . . . . . . . . . . . . 386
    В заключение
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
    Упражнения
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
      1   2   3   4   5   6   7   8   9   ...   74


    написать администратору сайта