С. В. Вабищевич инженерпрограммист компании ооо ск хайникс мемори солюшнс Восточная Европа
Скачать 1.28 Mb.
|
Глава 1. БЫСТРЫЙ СТАРТ 1.1. О языке ...................................................................................................... 4 История языка .................................................................................... 4 Особенности языка ............................................................................ 4 Эффективность ................................................................................... 5 Основные направления разработки на Python ................................ 5 Идеология Python ............................................................................... 6 1.2. Версии и интерпретаторы ........................................................................ 7 Версии Python..................................................................................... 7 Интерпретаторы ................................................................................ 7 Среды разработки .............................................................................. 8 Установка библиотек .......................................................................... 8 Глава 2. ОСНОВЫ ЯЗЫКА 2.1. Интерпретатор ........................................................................................ 10 2.2. Работа с числами в Python ...................................................................... 10 2.3. Основные конструкции языка ............................................................... 12 Логические выражения .................................................................... 12 Переменные ..................................................................................... 12 Условный оператор if ....................................................................... 13 Цикл while ......................................................................................... 14 Цикл for ............................................................................................. 15 Базовый синтаксис функций ........................................................... 16 Встроенные функции ....................................................................... 16 2.4. Списки ..................................................................................................... 17 2.5. Кортежи .................................................................................................... 19 2.6. Словари и множества .............................................................................. 20 Определение и создание словарей ................................................. 20 Особенности хеширования ............................................................. 20 Методы работы со словарями ......................................................... 21 2.7. Множества ................................................................................................ 22 Определение и создание множеств ................................................ 22 Методы работы с множествами ...................................................... 23 2.8. Файлы ....................................................................................................... 24 2.9. Строки ...................................................................................................... 25 Задание и особенности строк .......................................................... 25 Методы работы со строками ........................................................... 26 132 2.10. Импорт модулей .................................................................................... 28 Основы импорта модулей ............................................................. 28 Загрузка модулей ........................................................................... 28 Поиск модулей ............................................................................... 29 2.11. Стиль кода .............................................................................................. 29 О пробелах ...................................................................................... 29 Именование переменных.............................................................. 30 Длина строк .................................................................................... 30 Прочие замечания ......................................................................... 30 Утилиты для проверки .................................................................. 30 2.12. Модель памяти ...................................................................................... 31 Объекты .......................................................................................... 31 Сравнение объектов ...................................................................... 31 Связь имени и объекта .................................................................. 32 Изменяемые объекты .................................................................... 32 Неизменяемые объекты ................................................................ 33 Контейнеры .................................................................................... 34 Копирование объектов .................................................................. 34 Синглтоны ...................................................................................... 34 None как параметр по умолчанию ............................................... 35 2.13. Особенности работы с коллекциями ................................................... 35 Упаковка переменных ................................................................... 35 Распаковка переменных ................................................................ 35 Слайсы ............................................................................................ 37 Способы задания слайсов .............................................................. 37 Замечания по работе со списками ................................................ 38 Comprehension- выражения ........................................................... 39 Функциональный подход .............................................................. 39 Производные коллекции ............................................................... 40 Алгоритмы стандартной библиотеки ........................................... 41 Инструкция del ............................................................................... 41 2.14. Модули и пакеты ................................................................................... 42 Схема импорта модулей ................................................................ 42 Загрузка и перезагрузка модуля ................................................... 43 Импорт модулей по имени ............................................................ 43 Пакеты и пространства имен ........................................................ 44 Дополнительные возможности импортов модулей .................... 44 2.15. Функции ................................................................................................. 45 Синтаксис функций ....................................................................... 45 Вызов функций .............................................................................. 46 Алгоритм маппинга аргументов .................................................. 48 Документация функций ................................................................ 48 2.16. Области видимости переменных ......................................................... 48 Переменные в циклах .................................................................... 49 Локальные и глобальные переменные ......................................... 50 133 Замыкания ...................................................................................... 50 Lambda- функции............................................................................ 51 2.17. Форматирование строк ......................................................................... 52 2.18. Модули стандартной библиотеки ........................................................ 53 Модуль регулярных выражений ................................................... 53 Модули functools и enum ............................................................... 53 Логирование ................................................................................... 54 Работа с файловой системой ......................................................... 55 Работа с системой .......................................................................... 56 Парсинг аргументов командной строки ...................................... 56 Ответы ............................................................................................ 57 Полезные ссылки ........................................................................... 59 Глава 3. ОБЪЕКТН ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ НА PYTHON 3.1. Общие понятия классов и объектов ......................................................60 3.2. Методы классов ..................................................................................... 60 Атрибуты объектов ........................................................................ 60 Атрибуты классов ........................................................................... 61 Именование полей класса ............................................................. 61 Свой ства – декоратор property ...................................................... 62 Декораторы staticmethod и classmethod....................................... 63 Магические методы ....................................................................... 64 3.3. Наследование ......................................................................................... 66 Проверка типа ................................................................................ 66 Иерархия наследования ................................................................ 66 Наследование методов и атрибутов ............................................. 67 Переопределение атрибутов ......................................................... 67 Частичное переопределение атрибутов ....................................... 68 Переопределение конструктора ................................................... 68 Вызов методов базового класса .................................................... 68 Вызов конструктора базового класса ........................................... 69 Множественное наследование ...................................................... 69 Порядок разрешения имен ........................................................... 70 Пример недопустимой иерархии ................................................. 71 Процедура поиска атрибутов ........................................................ 71 Случай множественного наследования ........................................ 71 Встроенные базовые классы ......................................................... 72 3.4. Обработка ошибок ................................................................................. 72 Типы ошибок .................................................................................. 72 Пример работы с исключениями .................................................. 73 Обработка исключений ................................................................. 74 Особенности работы с Python 2 .................................................... 75 Особенности работы с Python 3 .................................................... 75 134 Подходы к обработке ошибок ....................................................... 76 Предупреждения ............................................................................ 76 3.5. Профилирование ................................................................................... 76 3.6. Тестирование ......................................................................................... 77 Проверка аргументов .................................................................... 77 Юнит- тесты .................................................................................... 78 Библиотека doctest ......................................................................... 78 Библиотека unittest ........................................................................ 78 Подмена объектов .......................................................................... 79 3.7. Декораторы ............................................................................................ 80 Реализация декоратора с помощью класса .................................. 81 Декораторы с параметрами .......................................................... 81 Несколько декораторов ................................................................. 82 Параметризованный декоратор- класс ......................................... 82 Свой ства как декораторы .............................................................. 83 3.8. Итераторы и генераторы ...................................................................... 84 Sequence and iterable ...................................................................... 84 Итераторы ...................................................................................... 85 Итерируемые и истощаемые ........................................................ 86 Генератор ........................................................................................ 86 Замечания по генераторам ........................................................... 87 Дополнительные способы итерирования .................................... 88 3.9. Менеджеры контекста ........................................................................... 88 3.10. Работа с атрибутами ............................................................................. 90 Динамические атрибуты ............................................................... 90 Пример работы с атрибутами ....................................................... 91 Магические методы работы с атрибутами ................................... 91 Замечания по работе с атрибутами .............................................. 92 3.11. Механизм создания классов ................................................................. 92 Последовательность создания класса ........................................... 92 Создание экземпляра класса ......................................................... 94 Метаклассы ..................................................................................... 94 Абстрактные базовые классы ........................................................ 96 Замечания о классах ...................................................................... 96 3.12. Дескрипторы ......................................................................................... 96 Ответы на вопросы ........................................................................ 98 Глава 4. ДОПОЛНИТЕЛЬНЫЕ ВОЗМОЖНОСТИ ЯЗЫКА PYTHON 4.1. Математическая библиотека Numpy .................................................... 99 NDArray ........................................................................................... 99 Размерность массива ..................................................................... 99 Оси ................................................................................................ 100 Индексация .................................................................................. 100 Продвинутая индексация ............................................................ 100 Универсальные функции ............................................................. 101 Типы и записи .............................................................................. 101 Возможности Numpy.................................................................... 102 4.2. Прочие математические библиотеки .................................................. 102 SciPy .............................................................................................. 102 MatplotLib, Seaborn, SymPy, Pandas ............................................. 103 4.3. Работа с Web. GUI .................................................................................. 104 Web- запросы и парсинг ............................................................... 104 GUI ................................................................................................. 105 Пример приложения на Kivy ....................................................... 105 4.4. Подробности реализации и прочие возможности языка ................... 106 Байт-код........................................................................................ 106 Интроспекция .............................................................................. 108 GIL и GC ........................................................................................ 108 Потоки и процессы в Python ....................................................... 109 Сериализация данных ................................................................. 109 Расширение языка ....................................................................... 110 Разворачивание приложений ..................................................... 110 Новые интересные возможности ............................................... 110 Глава 5. ЛАБОРАТОРНЫЕ РАБОТЫ 1. Основы языка и базовые коллекции ...................................................... 112 2. Comprehension- выражения и дополнительные коллекции .................. 114 3. Классы и методы ...................................................................................... 117 4. Декораторы и итераторы......................................................................... 120 5. Контекстные менеджеры и метаклассы ................................................. 123 Домашние задания ...................................................................................... 126 1. Основы языка ....................................................................................... 126 2. Объектно- ориентированное программирование ............................. 128 Список литературы ...................................................................................... 130 Учебное издание Косицин Дмитрий Юрьевич ЯЗЫК ПРОГРАММИРОВАНИЯ PYTHON Учебно-методическое пособие Ответственный за выпуск Е. А. Логвинович Художник обложки Т. Ю. Таран Технический редактор Л. В. Жаборовская Компьютерная верстка В. В. Мироновой Корректор Т. Н. Булатова Подписано в печать 28.08.2019. Формат 60×84/16. Бумага офсетная. Ризография. Усл. печ. л. 7,90. Уч.-изд. л. 7,1. Тираж 100 экз. Заказ 563. Белорусский государственный университет. Свидетельство о государственной регистрации издателя, изготовителя, распространителя печатных изданий № 1/270 от 03.04.2014. Пр. Независимости, 4, 220030, Минск. Республиканское унитарное предприятие «Издательский центр Белорусского государственного университета». Свидетельство о государственной регистрации издателя, изготовителя, распространителя печатных изданий № 2/63 от 19.03.2014. Ул. Красноармейская, 6, 220030, Минск. |