Python Прохоренок_832

Python Прохоренок_832 — крайний учебник классного автора.

Python Прохоренок_832 - книга «Python 3 и PyQt 5 : разработка приложений.» Прохоренок Н. А., 2017, Санкт-Петербург, БХВ-Петербург, 832 стр., 700-т грамм, 911,2 руб.

Аннотация этой книги:

Описан язык Python 3: типы данных, операторы, условия, циклы, регулярные выражения, функции, инструменты объектно-ориентированного программирования, работа с файлами и каталогами, часто используемые модули стандартной библиотеки.

Приведены основы базы данных SQLite, интерфейс доступа к базе и способы получения данных из Интернета. Особое внимание уделено библиотеке PyQt 5, позволяющей создавать приложения с графическим интерфейсом на языке Python.

Рассмотрены средства для обработки сигналов и событий, управления свойствами окна, разработки много-поточных приложений, описаны основные компоненты (кнопки, текстовые поля, списки, таблицы, меню, панели инструментов и др.), варианты их размещения внутри окна, инструменты для работы с базами данных, мультимедиа, печати документов и экспорта их в формате Adobe PDF.

На сайте издательства приведены все примеры из книги.

Оглавление этой книги:

Оглавление

Введение …. 15

ЧАСТЬ 1. ОСНОВЫ ЯЗЫКА 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 … 32
1.6. Вывод результатов работы программы … 33
1.7. Ввод данных … 35
1.8. Доступ к документации … 37

Глава 2. Переменные …. 40
2.1. Именование переменных … 40
2.2. Типы данных … 42
2.3. Присваивание значения переменным … 45
2.4. Проверка типа данных … 47
2.5. Преобразование типов данных … 48
2.6. Удаление переменной … 51

Глава 3. Операторы …. 52
3.1. Математические операторы … 52
3.2. Двоичные операторы … 54
3.3. Операторы для работы с последовательностями … 55
3.4. Операторы присваивания … 56
3.5. Приоритет выполнения операторов … 57

Глава 4. Условные операторы и циклы …. 59
4.1. Операторы сравнения … бо
4.2. Оператор ветвления if…else 62
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. Генерация случайных чисел … 78

Глава 6. Строки и двоичные данные …. 81
6.1. Создание строки … 82
6.2. Специальные символы … 86
6.3. Операции над строками … 86
6.4. Форматирование строк … 89
6.5. Meтод format() … 95
6.6. Функции и методы для работы со строками … 99
6.7. Настройка локали … 103
6.8. Изменение регистра символов … 104
6.9. Функции для работы с символами … 104
6.10. Поиск и замена в строке … 105
6.11. Проверка типа содержимого строки … 108
6.12. Тип данных bytes … 111
6.13. Tun данных bytearray … 115
6.14. Преобразование объекта в последовательность байтов … 118
6.15. Шифрование строк … 119

Глава 7. Регулярные выражения …. 121
7.1. Синтаксис регулярных выражений … 121
7.2. Поиск первою совпадения с шаблоном … 130
7,3. Поиск всех совпадений с шаблоном … 135
7.4. Замена в строке … 137
7.5. Прочие функции и методы … 139

Глава 8. Списки, кортежи, множества и диапазоны …. 140
8.1. Создание списка … 141
8.2. Операции над списками … 144
8.3. Многомерные списки … 147
8.4. Перебор элементов списка … 148
8.5. Генераторы списков и выражения-генераторы … 149
8.6. Функции тар(), zip(),  filter() и reduce() … 150
8.7. Добавление и удаление элементов списка … 153
8.8. Поиск элемента в списке и получение сведений о значениях, входящих в список … 155
8.9. Переворачивание и перемешивание списка … 157
8.10. Выбор элементов случайным образом … 157
8.11. Сортировка списка … 158
8.12. Заполнение списка числами … 159
8.13. Преобразование списка в строку … 160
8.14. Кортежи … 160
8.15. Множества … 162
8.16. Диапазоны … 167
8.17. Модуль itertools … 169
8.17.1. Генерация неопределённого количества значений … 169
8.17.2. Генерация комбинаций значений … 170
8.17.3. Фильтрация элементов последовательности … 171
8.17.4. Прочие функции … 172

Глава 9. Словари …. 175
9.1. Создание словаря … 175
9.2. Операции над словарями … 178
9.3. Перебор элементов словаря … 179
9.4. Методы для работы со словарями … 180
9:5. Генераторы словарей … 183

Глава 10. Работа с датой и временем …. 184
10.1. Получение текущих даты и времени … 184
10.2. Форматирование даты и времени … 186
10.3. «Засыпание» скрипта … 188
10.4. Модуль datetime. Манипуляции датой и временем … 189
10.4.1. Класс timedelta … 189
10.4.2. Класс date … 191
10.4.3. Класс time 195
10.4.4. Класс datetime … 197
10.5. Модуль calendar. Вывод календаря … 201
10.5.1. Методы классов TextCaIendar и LocaleTextCalendar … 203
10.5.2. Методы классов HTMLCaIenddr и LocaleHTMLCaIendar … 204
10.5.3. Другие полезные функции … 205
10.6. Измерение времени выполнения фрагментов кода … 208

Глава 11. Пользовательские функции …. 211
11.1. Определение функции и её вызов … 211
11.2. Расположение определений функций … 214
11.3. Необязательные параметры и сопоставление по ключам … 215
11.4. Переменное число параметров в функции … 218
11.5. Анонимные функции … 220
11.6. Футшшш-генераторы … 221
11.7. Декораторы функшай … 222
11.8. Рекурсия. Вычисление факториала … 224
11.9. Глобальные и локальные переменные … 225
11.10. Вложенные функции … 228

Глава 12. Модули и пакеты …. 231
12.1. Инструкция import … 231
12.2. Инструкция from … 235
12.3. Пути поиска модулей … 237
12.4. Повторная загрузка модулей … 238
12.5. Пакеты … 239

Глава 13. Объектно-ориентированное программирование …. 243
13.1. Определение класса и создание экземпляра класса … 243
13.2. Методы __init__0 и __del__() … 247
13.3. Наследование … 247
13.4. Множественное наследование … 249
13.4.1. Примеси и их использование … 251
13.5. Специалъщте методы … 252
13.6. Перегрузка операторов … 255
13.7. Статические методы и методы класса … 257
13.8. Абстрактные методы … 258
13.9. Ограничение доступа к идентифшсаторам внутри класса … 260
13.10. Свойства класса … 261
13.1 1. Декораторы классов … 263

Глава 14. Обработка исключений …. 264
14.1. Инструкция try…except…else…finally … 265
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. Методы для работы c файлами … 294
16.3. Доступ к файлам с помощью модуля os … 300
16.4. Классы StringIO и BytesIO … 302
16.5. Права доступа к файлам и каталогам … 306
16.6. Функции для манипулирования файлами … 308
16.7. Преобразование пути к файлу или каталогу … 311
16.8. Перенаправление ввода/вывода … 313
16.9. Сохранение объектов в файл … 316
16.10. Функции для работы с каталогами … 320
16.11. Исключения, возбуждаемые файловыми операциями … 323

Глава 17. Основы SQLite …. 325
17.1. Создание базы данных … 325
17.2. Создание таблицы … 327
17.3. Вставка записей … 333
17.4. Обновление и удаление записей … 336
17.5. Изменение структуры таблицы … ЗЗб
17.6. Выбор записей … 337
17.7. Выбор записей из нескольких таблиц … 340
17.8. Условия в инструкциях WHERE и HAVING … 342
17.9. Индексы … 345
17.10. Вложенные запросы 347
17.12. Удаление таблицы и базы данных351

Глава 18. Доступ к базе данных SQLite из Python …. 352
18.1. Создание и открытие базы данных … 353
18.2. Выполнение запросов … 354
18.3. Обработка результата запроса … 358
18.4. Управление транзакциями … 362
18.5. Создание пользовательской сортировки … 364
18.6. Поиск без учета регистра символов … 365
18.7. Создание агрегатных функций … 366
18.8. Преобразование типов данных … 367
18.9. Сохранение в таблице даты и времени … 371
18.10. Обработка исключений … 372
18.11. Трассировка выполняемых запросов … 375

Глава 19. Взаимодействие с Интернетом …. 376
19.1. Разбор URL-адpeca … 376
19.2. Кодирование и декодирование строки запроса … 379
19.3. Преобразование относительного URL-anpeca в абсолютный … 383
19.4.Разбор НТМL-эквивалентов … 383
19.5. Обмен данными по протоколу НTTР … 385
19.6. Обмен данными с помощью модуля urllib.request …. 390
19.7. Определеъше кодировки … 393

ЧАСТЬ II. БИБЛИОТЕКА PyQt …. 395

Глава 20. Знакомство с PyQt …. 397
20.1. Установка PyQt … 397
20.2. Первая программа … 400
20.3. Структура РуQt-программы … 401
20.4. ООП-стиль создания окна … 403
20.5. Создание окна c помощью программы Qt Designer … 407.
20.5.1. Создание формы … 407
20.5.2. Загрузка uі-файла в программе … 409
20.5.3. Преобразование uі-файла в ру-файл 411
20.6. Модули PyQt 5 … 413
20.7. Типы данных в PyQt … 414
20.8. Управление основным циклом приложения … 415
20.9. Многопоточные приложения … 416
20.9.1. Класс QThread: создание потока … 416
20.9.2. Управлеъще циклом внутри потока … 420
20.9.3. Модуль queue: создание очереди заданий … 424
20.9.4. Классы QMutex и QMutexLocker … 427
20.10. Вывод заставки … 431
20.11. Доступ к документации … 433

Глава 21. Управление окном приложении …. 435
21.1. Создание и отображение окна … 435
21.2. Указание типа окна … 436
21.3. Изменение и получеъше размеров окна … 438
21.4. Местоположение окна на экране и управление … 441
21.5. Указание координат и размеров … 444
21.5.1. Класс QPoint: координаты точки … 444
21.5.2. Класс QSize: размеры прямоугольной области … 445
21.5.3. Класс QRect: координаты и размеры прямоугольной области … 447
21.6. Разворачивание и сворачивание окна … 452
21.7. Управление прозрачностью окна … 454
21.8. Модельные окна … 455
21 .9. Смена значка в заголовке окна … 456
21.10. Изменеъше цвета фона окна … 457
21.11. Вывод изображения в качестве фона … 459
21.12. Создание окна произвольной формы … 460
21.13. Всплывающие подсказки … 462
21.14. Закрытие окна из программы … 463

Глава 22. Обработка сигналов и событий … 464
22.1. Назначение обработчиков сигналов … 464
22.2. Блокировка и удаление обработчика … 468
22.3. Генерация сигналов … 470
22.4. Передача данных в обработчик … 472
22.5. Использование таймеров … 473
22.6. Перехват всех событий … 476
22.7. События окна … 479
22.7.1. Изменение состояния окна … 479
22.7.2. Изменение положения и размеров окна … 480
22.7.3. Перерисовка окна или его части … 481
22.7.4. Предотвращение закрытия окна … 482
22.8. События клавиатуры … 483
22.8.1. Установка фокуса ввода … 483
22.8.2. Назначение клавиш быстрого доступа … 486
22.8.3. Нажатие и отпускание клавиши на клавиатуре … 488
22.9. События мыши … 489
22.9.1. Нажатие и отпускание кнопки мыши … 489
22.9.2. Перемещение указателя мыши … 491
22.9.3. Наведение и увод указателя … 492
22.9.4. Прокрутка колесика мыши … 492
22.9.5. Изменение внешнего вида указателя мыши … 493
22.10. Технология drag & drop … 495
22.10.1. Запуск перетаскивания … 495
22.10.2. Класс QMimeData … 497
22.10.3. Обработка сброса … 498
22.11. Работа c буфером обмена … 500
22.12. Фильтрация событий … 501
22.13. Искусственные события … 501

Глава 23. Размещение компонентов в окнах …. 503
23:1. Абсолютное позиционирование … 503
23.2. Горизонтальное и вертикальное выравнивание … 504
23.3. Выравнивание по сетке … 507
23.4. Выравнивание компонентов формы … 510
23.5. Классы QStackeadLayout и QStackedWidget … 512
23.6. Класс QSizePolyce … 513
23.7. Объединение компонентов в группу … 514
23.8. Панель c рамкой … 516
23.9. Панель с вкладками … 517
23.10. Компонент «аккордеон» … 521
23.11. Панели с изменяемым размером … 523
13.12. Область с полосами прокрутки … 525

Глава 24. Основные компоненты …. 526
24.1. Надпись … 526
24.2. Командная кнопка … 529
24.3. Переключатель … 531
24.4. Флажок … 531
24.5. Одно-строчное текстовое поле … 532
24.5.1. Основные методы и сигналы … 532
24.5.2. Ввод данных по маске … 535
24.5.3. Контроль ввода … 536
24.6. Многострочное текстовое поле … 537
24.6.1. Основные методы и сигналы … 538
24.6.2. Изменение параметров поля … 540
24.6.3. Указание параметров текста и фона … 541
24.6.4. Класс QTextDocument … 542
24.6.5. Класс QTextCursor … 545
24.7. Текстовый браузер … 548
24.8. Поля для ввода целых и вепіественных чисел … 550
24.9. Поля для ввода даты и времени … 551
24.10. Календарь … 554
24.11. Электронный индикатор … … 556
24.12. Индикатор хода процесса … 557
24.13. Шкала с ползунком … 558
24.14. Круговая шкала с ползунком … 560
24.15. Полоса прокрутки … 561
24.16. Web-6pay3ep … 561

Глава 25. Списки и таблицы …. 565
25.1. Раскрывающийся список … 565
25.1.1. Добавление, изменение и удаление элементов … 565
25.1.2. Изменение параметров списка … 566
25.1.3. Поиск элементов … 567
25.1.4. Сигналы … 568
25.2. Список для выбора шрифта … 568
25.3. Роли элементов … 569
25.4. Модели … 570
25.4.1. Доступ к данным внутри модели … 570
25.4.2. Класс QStringListModel … 571
25.4.3. Класс QStandardItemModel … 573
25.4.4. Класс QStandardItem … 576
25.5. Представления … 579
25.5.1. Класс QAbstractItemView … 580
25.5.2. Простой список … 583
25.5.3. Таблица … 585
25.5.4. Иерархический снисок … 587
25.5.5. Управление заголовками строк и столбцов … 589
25.6. Управление выделением элементов … 591
25.7. Промежуточные модели … 593
25.8. Использование делегатов … 595

Глава 26. Работа с базами данных …. 599
26.1. Соединение с базой данных … 599
26.2. Получение сведений о структуре таблицы … 602
26.2.1. Получение сведений о таблице … 602
26.2.2. Получение сведений об отдельном поле … 603
26.2.3. Получение сведений об индексе … 603
26.2.4. Получение сведений об ошибке … 604
26.3. Выполнение SQL-зaпpocoв и получение их результатов … 604
26.3.1. Выполнение запросов … 605
26.3.2. Обработка результатов выполнения запросов … 607
26.3.3. Очистка запроса … 608
26.3.4. Получение служебных сведений о запросе … 609
26.4. Модели, связанные с данными … 609
26.4.1. Модель, связанная с 80Ь-запросом … 609
26.4.2. Модель, связанная с таблицей … 611
26.4.3. Модель, поддерживающая межтабличные связи … 616
26.4.4. Использование связанных делегатов … 619

Глава 27. Работа с графикой … 621
27.1. Вспомогательные классы … 621
27.1.1. Класс QColor: цвет … 622
27.1.2. Класс QPen: nepo … 625
27.1.3. Класс QBrush: кисть … 627
27.1.4. Класс QLine: линия … 627
27.1.5. Класс QРolygon: многоугольник … 628
27.1.6. Класс QFont: шрифт … 630
27.2. Класс QPainter … 632
27.2.1. Рисование линий и фигур … 633
27.2.2. Вывод текста … 636
27.2.3. Вывод изображения … 637
27.2.4. Преобразование систем координат … 638
27.2.5. Сохранение команд рисования в файл … 639
27.3. Работа с изображениями … 640
27.3.1. Класс QPixmap … 641
27.3.2. Класс QBitmap … 643
27.3.3. Класс QImage … 644
27.3.4. Класс QIcon … 647

Глава 28. Графическая сцена …. 649
28.1. Класс QGraphicsScene: сцена … 649
28.1.1. Настройка сцены … 650
28.1.2. Добавление и удаление графических объектов … 650
28.1.3. Добавление компонентов на сцену … 651
28.1.4. Поиск объектов … 652
28.1.5. Управление фокусом ввода … 653
28.1.6. Управление выделением объектов … 654
28.1.7. Прочие методы и сигналы … 654
28.2. Класс QGraphicsView: представление … 656
28.2.1. Настройка представления … 656
28.2.2. Преобразования между координатами представления и сцены … 657
28.2.3. Поиск объектов … 658
28.2.4. Преобразование системы координат … 658
28.2.5. Прочие методы … 659
28.3. Класс QGraphicsItem: базовый класс для графических обьектов … 660
28.3.1. Настройка объекта … 660
28.3.2. Выполнение преобразований … 662
28.3.3. Прочие методы … 663
28.4. Графические объекты … 664
28.4.1. Линия … 664
28.4.2. Класс QAbstractGraphicsShapeItem … 664
28.4.3. Прямоугольник … 665
28.4.4. Многоугольник … 665
28.4.6. Изображение … 666
28.4.7. Простой текст … 667
28.4.8. Форматированный текст … 667
28.5. Группировка объектов … 668
28.6. Эффекты … 669
28.6.1. Класс QGraphicsEffect … 669
28.6.2. Тень … 669
28.6.3. Размытие … 670
28.6.4. Изменение цвета … 671
28.6.5. Изменение прозрачности … 671
28.7. Обработка событий … 672
28.7.1. События клавиатуры … 672
28.7.2. События мыши … 673
28.7.3. Обработка перетаскивания и c6poca … 675
28.7.4. Фильтрация событий … 677
28.7.5. Обработка изменения состояния обьекта … 677

Глава 29. Диалоговые окна …. 679
29.1.Пользовательские диалоговые окна … 679
29.2 Класс QDialogButtonBox … 681
29.3. Класс QMessageBox … 684
29.3.1. Основные методы и сигналы … 685
29.3.2. Окно информационного сообщения … 688
29.3.3. Окно подтверждения … 688
29.3.4. Окно предупреждающего сообщения … 689
29.3.5. Окно критического сообщения … 689
29.3.6. Окно сведений о программе … 690
29.3.7. Окно сведений о библиотеке Qt … 690
29.4. Класс QInputDialog … 691
29.4.1. Основные методы и сигналы … 692
29.4.2. Окно для ввода строки … 694
29.4.3. Окно для ввода целого числa … 694
29.4.4. Окно для ввода вещественного числа … 695
29.4.5. Окно для выбора пункта из списка … 696
29.4.6. Окно для ввода большого текста … 696
29.5. Класс QFileDialog … 697
29.5.1. Основные методы и сишалы … б98
29.5.2. Окно для выбора каталога … 700
29.5.3. Окно для открытия файлов … 701
29.5.4. Окно для сохранения файла … 702
29.6. Окно для выбора цвета … 704
29.7. Окно для выбора шрифта … 705
29.8. Окно для вывода сообщения об ошибке … 706
29.9. Окно с индикатором хода процесса … 706
29.10. Создание многостраничного мастера … 708
29.10.1. Kлacc QWizard … 708
29.10.2. Класс QWizardPage … 711

Глава 30. Создание SDI- И MDI-приложений …. 714
30.1. Создание главного окна приложения … 714
30.2. Меню … 718
30.2.1. Класс QMenuBar … 719
30.2.2. Класс QMenu … 720
30.2.3. Контекстное меню компонента … 722
30.2.4. Класс QAction … 723
30.2.5. Объединение переключателей в группу … 726
30.3. Панели инструментов … 727
30.3.1. Класс QТооlВаr … 728
30.3.2. Класс QToolButton … 729
30.4. Прикрепляемые панели … 730
30.5. Управление строкой состояния … 732
30.6. MDI-приложения … 733
30.6.1. Класс QMdiArea … 733
30.6.2. Класс QMdiSubWindow … 736
30.7. Добавление значка приложения в область уведомлений … 737

Глава 31. Мультимедиа …. 739
31.1. Класс QMediaPlayer … 739
31.2. Класс QVideoWidget … 748
31.3. Класс QMediaPlaylist … 751
31.4. Запись звука … 754
31.4.1. Класс QAudioRecorder … 755
31.4.2. Класс QAudioEncoderSettings … 757
31.5. Класс QSoundEffect … 761

Глава 32. Печать документов …. 764
32.1. Основные средства печати … 764
32.1.1. Класс QPrinter … 764
32.1.2. Вывод на печать … 768
32.1.3. Служебные классы … 773
32.1.3.1. Класс QPageSize … 774
32.1.3.2. Класс QPageLayout … 776
32.2. Задание параметров принтера и страницы … 777
32.2.1. Класс QPrintDialog … 778
32.2.2. Класс QРаgeSetupDialog …. 779
32.3. Предварительный просмотр документов перед печатью … 781
32.3.1. Класс QPrintPreviewDialog … 781
32.3.2. Класс QPrintPreviewWidget … 784
32.4. Получение сведений о принтере. Класс QPrinterInfo … 786
32.5. Экспорт в формат PDF. Класс QPdfWriter … 788

Заключение …. 791
Приложение. Описание электронного архива …. 792
Предметный указатель …. 793

Оглавление извлёк из графического PDF-файла, используя онлайновый сервис http://www.newocr.com — пришлось повозиться…

Лучший отзыв об этой книге:

11 сентября 2016, 10:15   valdeloir

В первую очередь книга нужна для начинающих, особенно для тех, кто желает сам изучить язык программирования. В сравнении с предыдущим изданием, в первой части революционных изменений не заметил. Есть, конечно, дополнения.

Вторая часть понравилась больше. Может, потому что искал именно материал по разработке интерфейса. А вообще эту книгу посоветую скорее, чем переводы зарубежных авторов. Какой бы ни был перевод, он останется переводом. Язык книги более доступен.

Начало DOC-файла с листингами примеров выглядит так:

1. Первые шаги

1.1. Установка Python

1.1.1. Установка нескольких интерпретаторов Python

@echo off

start C:\Python27\pythonw.exe C:\Python27\Lib\idlelib\idle.pyw

Листинг 1.1. Проверка установки

import sys
print (tuple(sys.version_info))
try:
raw_input()        # Python 2
except NameError:
input()            # Python 3

import sys
print (tuple(sys.version_info))
try: raw_input()        # Python 2
except NameError: input()            # Python 3

Переносить листинги примеров на эту страницу нет смысла по нескольким причинам (главная из них — потеря начальных пробелов строки) — примеры нужно использовать из DOC-файла, скопированного с сайта издательства.

Приглашаю всех высказываться в Комментариях. Критику и обмен опытом одобряю и приветствую. В хороших комментариях сохраняю ссылку на сайт автора!

И не забывайте, пожалуйста, нажимать на кнопки социальных сетей, которые расположены под текстом каждой страницы сайта.
Python Прохоренок_832Продолжение тут…

Deviz_17

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Проверка комментариев включена. Прежде чем Ваши комментарии будут опубликованы пройдет какое-то время.