ээдд. Прохоренок_Н_А__Дронов_В_А_Python_3_и_PyQt_5_Разработка_приложен. Николай Прохоренок Владимир Дронов
Скачать 7.92 Mb.
|
Николай Прохоренок Владимир Дронов Санкт-Петербург «БХВ-Петербург» 2018 УДК 004.43 ББК 32.973.26-018.1 П84 Прохоренок, Н. А. П84 Python 3 и PyQt 5. Разработка приложений. — 2-е изд., перераб. и доп. / Н. А. Прохоренок, В. А. Дронов. — СПб.: БХВ-Петербург, 2018. — 832 с.: ил. — (Профессиональное программирование) ISBN 978-5-9775-3978-4 Описан язык Python 3: типы данных, операторы, условия, циклы, регулярные выражения, функции, инструменты объектно-ориентированного программирова- ния, работа с файлами и каталогами, модули стандартной библиотеки. Особое внимание уделено библиотеке PyQt, позволяющей создавать приложения с графи- ческим интерфейсом. Рассмотрены средства для обработки сигналов и событий, управления свойствами окна, разработки многопоточных приложений, описаны основные компоненты (кнопки, поля и др.), инструменты для работы с базами дан- ных, мультимедиа, печати документов и их экспорта. На сайте издательства при- ведены примеры из книги. Во втором издании описаны актуальные версии Python 3.6.3 и PyQt 5.9.2, сред- ства взаимодействия с Windows и сохранения настроек приложений, рассмотрен процесс разработки полнофункционального приложения. Для программистов УДК 004.43 ББК 32.973.26-018.1 Группа подготовки издания: Руководитель проекта Евгений Рыбаков Зав. редакцией Екатерина Капалыгина Компьютерная верстка Ольги Сергиенко Дизайн обложки Марины Дамбиевой "БХВ-Петербург", 191036, Санкт-Петербург, Гончарная ул., 20. ISBN 978-5-9775-3978-4 © ООО "БХВ", 2018 © Оформление. ООО "БХВ-Петербург", 2018 Оглавление Введение .......................................................................................................................... 15 ЧАСТЬ I. ОСНОВЫ ЯЗЫКА PYTHON .................................................................... 17 Глава 1. Первые шаги .................................................................................................. 19 1.1. Установка Python .................................................................................................................... 19 1.1.1. Установка нескольких интерпретаторов Python ........................................................ 23 1.1.2. Запуск программы с помощью разных версий Python .............................................. 25 1.2. Первая программа на Python .................................................................................................. 26 1.3. Структура программы ............................................................................................................ 28 1.4. Комментарии ........................................................................................................................... 31 1.5. Дополнительные возможности IDLE .................................................................................... 31 1.6. Вывод результатов работы программы ................................................................................ 33 1.7. Ввод данных ............................................................................................................................ 35 1.8. Доступ к документации .......................................................................................................... 36 Глава 2. Переменные .................................................................................................... 40 2.1. Именование переменных ....................................................................................................... 40 2.2. Типы данных ........................................................................................................................... 41 2.3. Присваивание значения переменным ................................................................................... 44 2.4. Проверка типа данных............................................................................................................ 47 2.5. Преобразование типов данных .............................................................................................. 48 2.6. Удаление переменных ............................................................................................................ 50 Глава 3. Операторы ...................................................................................................... 52 3.1. Математические операторы ................................................................................................... 52 3.2. Двоичные операторы .............................................................................................................. 54 3.3. Операторы для работы с последовательностями ................................................................. 55 3.4. Операторы присваивания ....................................................................................................... 56 3.5. Приоритет выполнения операторов ...................................................................................... 57 Глава 4. Условные операторы и циклы ................................................................... 59 4.1. Операторы сравнения ............................................................................................................. 60 4.2. Оператор ветвления if...else ................................................................................................... 62 4 Оглавление 4.3. Цикл for ................................................................................................................................... 65 4.4. Функции range() и enumerate() .............................................................................................. 67 4.5. Цикл while................................................................................................................................ 70 4.6. Оператор continue: переход на следующую итерацию цикла ............................................. 71 4.7. Оператор break: прерывание цикла ....................................................................................... 71 Глава 5. Числа ................................................................................................................ 73 5.1. Встроенные функции и методы для работы с числами ....................................................... 75 5.2. Модуль math: математические функции ............................................................................... 77 5.3. Модуль random: генерирование случайных чисел ............................................................... 79 Глава 6. Строки и двоичные данные ........................................................................ 82 6.1. Создание строки...................................................................................................................... 83 6.2. Специальные символы ........................................................................................................... 86 6.3. Операции над строками.......................................................................................................... 87 6.4. Форматирование строк ........................................................................................................... 90 6.5. Метод format() ......................................................................................................................... 95 6.5.1. Форматируемые строки ............................................................................................... 99 6.6. Функции и методы для работы со строками ...................................................................... 100 6.7. Настройка локали ................................................................................................................. 103 6.8. Изменение регистра символов ............................................................................................. 104 6.9. Функции для работы с символами ...................................................................................... 105 6.10. Поиск и замена в строке ..................................................................................................... 105 6.11. Проверка типа содержимого строки ................................................................................. 109 6.12. Тип данных bytes................................................................................................................. 111 6.13. Тип данных bytearray ......................................................................................................... 116 6.14. Преобразование объекта в последовательность байтов .................................................. 119 6.15. Шифрование строк ............................................................................................................. 120 Глава 7. Регулярные выражения ............................................................................. 122 7.1. Синтаксис регулярных выражений ..................................................................................... 122 7.2. Поиск первого совпадения с шаблоном .............................................................................. 131 7.3. Поиск всех совпадений с шаблоном ................................................................................... 136 7.4. Замена в строке ..................................................................................................................... 137 7.5. Прочие функции и методы ................................................................................................... 139 Глава 8. Списки, кортежи, множества и диапазоны ............................................ 141 8.1. Создание списка .................................................................................................................... 142 8.2. Операции над списками ....................................................................................................... 145 8.3. Многомерные списки ........................................................................................................... 148 8.4. Перебор элементов списка ................................................................................................... 148 8.5. Генераторы списков и выражения-генераторы .................................................................. 149 8.6. Функции map(), zip(), filter() и reduce() ............................................................................... 150 8.7. Добавление и удаление элементов списка .......................................................................... 153 8.8. Поиск элемента в списке и получение сведений о значениях, входящих в список ........ 156 8.9. Переворачивание и перемешивание списка ....................................................................... 157 8.10. Выбор элементов случайным образом .............................................................................. 157 8.11. Сортировка списка .............................................................................................................. 158 8.12. Заполнение списка числами ............................................................................................... 159 8.13. Преобразование списка в строку ....................................................................................... 160 Оглавление 5 8.14. Кортежи ............................................................................................................................... 160 8.15. Множества ........................................................................................................................... 162 8.16. Диапазоны ........................................................................................................................... 167 8.17. Модуль itertools................................................................................................................... 168 8.17.1. Генерирование неопределенного количества значений ...................................... 168 8.17.2. Генерирование комбинаций значений .................................................................. 169 8.17.3. Фильтрация элементов последовательности ........................................................ 171 8.17.4. Прочие функции ..................................................................................................... 172 Глава 9. Словари ......................................................................................................... 175 9.1. Создание словаря .................................................................................................................. 175 9.2. Операции над словарями...................................................................................................... 177 9.3. Перебор элементов словаря ................................................................................................. 179 9.4. Методы для работы со словарями ....................................................................................... 180 9.5. Генераторы словарей ............................................................................................................ 183 Глава 10. Работа с датой и временем ....................................................................... 184 10.1. Получение текущих даты и времени ................................................................................. 184 10.2. Форматирование даты и времени ...................................................................................... 186 10.3. «Засыпание» скрипта .......................................................................................................... 188 10.4. Модуль datetime: манипуляции датой и временем .......................................................... 188 10.4.1. Класс timedelta ........................................................................................................ 189 10.4.2. Класс date ................................................................................................................ 191 10.4.3. Класс time ................................................................................................................ 194 10.4.4. Класс datetime ......................................................................................................... 196 10.5. Модуль calendar: вывод календаря ................................................................................... 201 10.5.1. Методы классов TextCalendar и LocaleTextCalendar........................................... 202 10.5.2. Методы классов HTMLCalendar и LocaleHTMLCalendar ................................... 204 10.5.3. Другие полезные функции ..................................................................................... 205 10.6. Измерение времени выполнения фрагментов кода ......................................................... 208 Глава 11. Пользовательские функции .................................................................... 210 11.1. Определение функции и ее вызов ..................................................................................... 210 11.2. Расположение определений функций ............................................................................... 213 11.3. Необязательные параметры и сопоставление по ключам ............................................... 214 11.4. Переменное число параметров в функции ....................................................................... 216 11.5. Анонимные функции .......................................................................................................... 218 11.6. Функции-генераторы .......................................................................................................... 219 11.7. Декораторы функций .......................................................................................................... 221 11.8. Рекурсия. Вычисление факториала ................................................................................... 223 11.9. Глобальные и локальные переменные .............................................................................. 224 11.10. Вложенные функции ........................................................................................................ 228 11.11. Аннотации функций ......................................................................................................... 229 Глава 12. Модули и пакеты ....................................................................................... 231 12.1. Инструкция import .............................................................................................................. 231 12.2. Инструкция from ................................................................................................................. 234 12.3. Пути поиска модулей ......................................................................................................... 237 12.4. Повторная загрузка модулей ............................................................................................. 238 12.5. Пакеты ................................................................................................................................. 239 6 Оглавление Глава 13. Объектно-ориентированное программирование ................................ 244 13.1. Определение класса и создание экземпляра класса ......................................................... 244 13.2. Методы __init__() и __del__() ............................................................................................ 247 13.3. Наследование ...................................................................................................................... 248 13.4. Множественное наследование ........................................................................................... 250 13.4.1. Примеси и их использование ................................................................................. 252 13.5. Специальные методы.......................................................................................................... 253 13.6. Перегрузка операторов ....................................................................................................... 255 13.7. Статические методы и методы класса .............................................................................. 258 13.8. Абстрактные методы .......................................................................................................... 259 13.9. Ограничение доступа к идентификаторам внутри класса ............................................... 260 13.10. Свойства класса ................................................................................................................ 261 13.11. Декораторы классов ......................................................................................................... 263 |