ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 05.12.2023
Просмотров: 812
Скачиваний: 3
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
Николай Прохоренок
Владимир Дронов
Санкт-Петербург
«БХВ-Петербург»
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
Глава 14. Обработка исключений ............................................................................ 264 14.1. Инструкция try...except...else...finally ................................................................................. 265 14.2. Инструкция with...as ........................................................................................................... 269 14.3. Классы встроенных исключений ....................................................................................... 271 14.4. Пользовательские исключения .......................................................................................... 273
Глава 15. Итераторы, контейнеры и перечисления ............................................. 277 15.1. Итераторы ........................................................................................................................... 278 15.2. Контейнеры ......................................................................................................................... 279 15.2.1. Контейнеры-последовательности.......................................................................... 279 15.2.2. Контейнеры-словари .............................................................................................. 281 15.3. Перечисления ...................................................................................................................... 282
Глава 16. Работа с файлами и каталогами ............................................................. 287 16.1. Открытие файла .................................................................................................................. 287 16.2. Методы для работы с файлами .......................................................................................... 293 16.3. Доступ к файлам с помощью модуля os ........................................................................... 299 16.4. Классы StringIO и BytesIO .................................................................................................. 301 16.5. Права доступа к файлам и каталогам ................................................................................ 305 16.6. Функции для манипулирования файлами ......................................................................... 307 16.7. Преобразование пути к файлу или каталогу ..................................................................... 310 16.8. Перенаправление ввода/вывода ......................................................................................... 312 16.9. Сохранение объектов в файл ............................................................................................. 315 16.10. Функции для работы с каталогами .................................................................................. 319 16.10.1. Функция scandir() ............................................................................................... 322 16.11. Исключения, возбуждаемые файловыми операциями .................................................. 324
ЧАСТЬ II. БИБЛИОТЕКА PYQT 5 ......................................................................... 325
Глава 17. Знакомство с PyQt 5 .................................................................................. 327 17.1. Установка PyQt 5 ................................................................................................................ 327 17.2. Первая программа ............................................................................................................... 328 17.3. Структура PyQt-программы ............................................................................................... 329 17.4. ООП-стиль создания окна .................................................................................................. 331 17.5. Создание окна с помощью программы Qt Designer ......................................................... 335 17.5.1. Создание формы ..................................................................................................... 335