Опубликовано

Новинка: “Python. Уроки для начинающих”

Python. Уроки для начинающих

В книге 22 урока, более 40 практических упражнений и заданий для самостоятельной работы. Описан язык Python: его основы, типы данных, управляющие выражения, функции, объекты, классы, исключения, модули и пакеты. Рассмотрены более развитые инструменты языка: установка и применение дополнительных библиотек, многопоточное, многопроцессное и конкурентное программирование, аннотации типов. Рассказано о практическом применении Python и различных библиотек для загрузки данных из Интернета, парсинга веб-страниц, работы с базами данных, программирования графических и веб-приложений, математических расчетов, вывода графиков и работы с искусственным интеллектом.  Электронный архив на сайте издательства  содержит все примеры из книги.

Для начинающих программистов

Ваш путь от новичка к Python-разработчику начинается здесь!

Перед вами — идеальный старт в мир программирования!

Книга Владимира Дронова, автора более 50 популярных компьютерных руководств, написана специально для тех, кто делает первые шаги в коде. Она превратит сложные концепции в понятные и наглядные уроки, не перегружая лишней теорией.

22 урока, 40+ практических упражнений — и вы с нуля освоите мощный язык Python, на котором создаются веб-сайты, приложения, аналитические инструменты и решения с искусственным интеллектом.

Чему вы научитесь:

  • Писать чистый и эффективный код на Python с самого начала.
  • Работать с базами данных, парсить информацию из интернета и строить графики.
  • Создавать графические приложения и основы веб-разработки.
  • Использовать многопоточность для решения сложных задач.
  • Интегрировать возможности искусственного интеллекта в свои проекты.

Почему именно эта книга?

  • Проверенный автор: Владимир Дронов — практикующий программист с 1987 года, умеющий объяснять просто о сложном.
  • Структура «от простого к сложному»: Пошаговые уроки и задания для закрепления материала.
  • Практика с первого дня: Все примеры из книги доступны в электронном архиве для скачивания.
  • Актуальность: Рассмотрены современные подходы, включая аннотации типов, конкурентное программирование и работу с AI.

Для кого эта книга:

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

 

Дронов Владимир Александрович

Дронов Владимир Александрович, профессиональный программист, писатель и журналист, работает с компьютерами с 1987 года. Автор более 30 популярных компьютерных книг, в том числе «Django 2.1. Практика создания веб-сайтов на Python», “HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера“, «Python 3. Самое необходимое», «Python 3 и PyQt 5. Разработка приложений», “Laravel. Быстрая разработка современных динамических Web-сайтов на PHP, MySQL, HTML и CSS“, “Angular 4. Быстрая разработка сверхдинамических Web-сайтов на TypeScript и PHP” и книг по продуктам Adobe Flash и Adobe Dreamweaver различных версий. Его статьи публикуются в журналах “Мир ПК” и “ИнтерФейс” (Израиль) и интернет-порталах “IZ City” и “TheVista.ru”.

Книгу “Python. Уроки для начинающих” можно купить в нашем интенет-магазине.

Предисловие…………………………………………………………………………………………… 13

Почему именно Python?…………………………………………………………………………………………………………….. 13

Почему эта книга?……………………………………………………………………………………………………………………… 14

Использованные программные продукты……………………………………………………………………………….. 14

Типографские соглашения………………………………………………………………………………………………………… 15

Часть I. Язык Python: основные инструменты………………….. 17

Урок 1. Введение в Python, часть 1…………………………………………………………. 19

1.1. Интерактивный режим Python……………………………………………………………………………………………. 19

1.2. Операторы. Приоритет операторов. Скобки……………………………………………………………………. 20

1.3. Функции……………………………………………………………………………………………………………………………….. 23

1.4. Переменные. Присваивание……………………………………………………………………………………………….. 24

1.5. Типы данных……………………………………………………………………………………………………………………….. 26

1.5.1. Числа — целые и вещественные………………………………………………………………………………. 26

1.5.2. Строки………………………………………………………………………………………………………………………… 27

1.5.3. Списки………………………………………………………………………………………………………………………… 28

1.5.4. Кортежи……………………………………………………………………………………………………………………… 29

1.5.5. Словари……………………………………………………………………………………………………………………… 29

1.6. Стандартная библиотека. Модули. Импорт…………………………………………………………………….. 30

1.7. Объекты и классы……………………………………………………………………………………………………………….. 32

1.7.1. Введение в объекты и классы…………………………………………………………………………………… 32

1.7.2. Объектная природа Python………………………………………………………………………………………. 33

1.8. Программные ошибки и сообщения о них………………………………………………………………………… 34

1.9. Что еще следует знать о Python в целом, часть 1…………………………………………………………….. 35

Урок 2. Введение в Python, часть 2…………………………………………………………. 38

2.1. Работа с данными разных типов……………………………………………………………………………………….. 38

2.1.1. Выяснение типа данных, к которому относится значение……………………………………. 38

2.1.2. Преобразование значения в другой тип данных……………………………………………………. 39

2.2. Написание программ на Python………………………………………………………………………………………… 39

2.2.1. Ввод данных……………………………………………………………………………………………………………… 40

2.2.2. Вывод данных…………………………………………………………………………………………………………… 40

2.2.3. Написание программ в среде IDLE Shell………………………………………………………………… 41

2.2.4. Альтернативные инструменты для написания программ……………………………………… 44

2.2.5. Комментарии…………………………………………………………………………………………………………….. 45

2.2.6. Правила набора программного кода на Python…………………………………………………….. 45

2.2.7. Сообщения об ошибках в коде программ……………………………………………………………….. 47

2.3. Что еще следует знать о Python в целом, часть 2…………………………………………………………….. 47

Урок 3. Логический тип данных, управляющие выражения и блоки…….. 49

3.1. Логический тип данных……………………………………………………………………………………………………… 49

3.1.1. Введение в логический тип. Операторы сравнения. Условия……………………………….. 49

3.1.2. Логические операторы……………………………………………………………………………………………… 50

3.2. Выражение ветвления…………………………………………………………………………………………………………. 51

3.3. Блоки. Пустой оператор…………………………………………………………………………………………………….. 53

3.3.1. Как набираются выражения, содержащие блоки?………………………………………………… 54

3.4. Выражение выбора…………………………………………………………………………………………………………….. 55

3.5. Циклы. Цикл с условием……………………………………………………………………………………………………… 56

3.6. Управление циклами…………………………………………………………………………………………………………… 58

3.6.1. Переход на следующую итерацию…………………………………………………………………………. 58

3.6.2. Прерывание цикла…………………………………………………………………………………………………….. 58

3.7. Автоматическое преобразование типов в условиях управляющих выражений…………… 59

3.8. Оператор присваивания в составе выражения…………………………………………………………………. 59

3.9. Что еще следует знать о блоках и не только…………………………………………………………………….. 60

3.10. Самостоятельные упражнения………………………………………………………………………………………… 61

Урок 4. Числа и строки………………………………………………………………………….. 62

4.1. Числа — целые и вещественные………………………………………………………………………………………… 62

4.1.1. Запись чисел……………………………………………………………………………………………………………… 62

4.1.2. Преобразование значений в числа………………………………………………………………………….. 63

4.1.3. Обработка чисел……………………………………………………………………………………………………….. 64

4.1.3.1. Арифметические операции…………………………………………………………………………. 64

4.1.3.2. Алгебраические и тригонометрические операции……………………………………. 65

4.1.3.3. Генерирование псевдослучайных чисел…………………………………………………… 66

4.1.4. Сравнение чисел……………………………………………………………………………………………………….. 67

4.1.5. Потери точности при вычислении…………………………………………………………………………… 68

4.2. Строки………………………………………………………………………………………………………………………………….. 68

4.2.1. Создание строк………………………………………………………………………………………………………….. 68

4.2.1.1. Специальные символы………………………………………………………………………………… 69

4.2.2. Преобразование значений в строки………………………………………………………………………… 70

4.2.3. Обработка строк……………………………………………………………………………………………………….. 70

4.2.3.1. Извлечение символов, срезов и перебор. Цикл перебора…………………………. 70

4.2.3.2. Простейшие операции над строками…………………………………………………………. 72

4.2.3.3. Преобразование строк………………………………………………………………………………… 72

4.2.3.4. Поиск и замена в строках……………………………………………………………………………. 74

4.2.4. Сравнение строк……………………………………………………………………………………………………….. 75

4.2.5. Форматируемые строки……………………………………………………………………………………………. 75

4.3. Последовательности…………………………………………………………………………………………………………… 78

4.4. Что еще нужно знать о строках и не только……………………………………………………………………… 79

4.5. Самостоятельные упражнения………………………………………………………………………………………….. 81

Урок 5. Списки, кортежи, генераторы и словари……………………………………. 82

5.1. Списки………………………………………………………………………………………………………………………………….. 82

5.1.1. Создание списков……………………………………………………………………………………………………… 82

5.1.2. Обработка списков……………………………………………………………………………………………………. 82

5.1.2.1. Простейшие операции над списками…………………………………………………………. 82

5.1.2.2. Добавление и удаление элементов списка………………………………………………… 84

5.1.2.3. Обработка элементов списка……………………………………………………………………… 85

5.1.2.4. Поиск элементов в списках…………………………………………………………………………. 86

5.1.2.5. Выдача элементов списков, выбранных псевдослучайным образом…….. 87

5.1.3. Сравнение списков……………………………………………………………………………………………………. 88

5.1.4. Списковые включения………………………………………………………………………………………………. 88

5.2. Кортежи……………………………………………………………………………………………………………………………….. 89

5.2.1. Создание кортежей…………………………………………………………………………………………………… 89

5.2.2. Работа с кортежами………………………………………………………………………………………………….. 89

5.2.3. Именованные кортежи……………………………………………………………………………………………… 90

5.3. Распаковка последовательностей……………………………………………………………………………………… 91

5.3.1. Пара слов о множественном присваивании и множественном выводе………………… 93

5.4. Генераторы………………………………………………………………………………………………………………………….. 93

5.4.1. Генераторы-функции………………………………………………………………………………………………… 93

5.4.2. Генераторы-выражения……………………………………………………………………………………………. 95

5.5. Словари……………………………………………………………………………………………………………………………….. 95

5.5.1. Создание словарей……………………………………………………………………………………………………. 95

5.5.2. Обработка словарей…………………………………………………………………………………………………. 96

5.5.2.1. Простейшие операции над словарями………………………………………………………. 96

5.5.2.2. Добавление, извлечение и удаление элементов словаря…………………………. 97

5.5.2.3. Перебор элементов словаря……………………………………………………………………….. 98

5.5.3. Сравнение словарей……………………………………………………………………………………………….. 100

5.5.4. Словарные включения……………………………………………………………………………………………. 100

5.5.5. Словари со значением по умолчанию defaultdict……………………………………………….. 101

5.6. Отображения……………………………………………………………………………………………………………………… 101

5.7. Особенности хранения значений в переменных. Ссылки……………………………………………… 102

5.8. Копирование списков, кортежей и словарей………………………………………………………………….. 103

5.9. Что еще нужно знать о генераторах и не только……………………………………………………………. 104

5.10. Самостоятельные упражнения………………………………………………………………………………………. 105

Урок 6. Функции………………………………………………………………………………….. 106

6.1. Вызов функций………………………………………………………………………………………………………………….. 106

6.1.1. Виды параметров функций…………………………………………………………………………………….. 106

6.1.2. Распаковка последовательностей и отображений в вызовах функций……………… 107

6.2. Объявление своих функций………………………………………………………………………………………………. 108

6.2.1. Объявление функции………………………………………………………………………………………………. 108

6.2.2. Доступ к глобальным переменным из тела функции…………………………………………… 109

6.2.3. Необязательные параметры………………………………………………………………………………….. 110

6.2.4. Произвольное количество параметров…………………………………………………………………. 111

6.2.5. Строго позиционные, строго именованные и двоякие параметры…………………….. 112

6.3. Функция как значение………………………………………………………………………………………………………. 114

6.3.1. Разные функции и методы, принимающие с параметрами другие функции……… 114

6.4. Лямбда-функции……………………………………………………………………………………………………………….. 116

6.5. Вложенные функции…………………………………………………………………………………………………………. 117

6.5.1. Замыкания. Фабрики функций……………………………………………………………………………….. 118

6.6. Декораторы функций………………………………………………………………………………………………………… 120

6.7. Сообщения об ошибках в телах функций. Стек вызовов………………………………………………. 122

6.8. Что еще нужно знать о функциях…………………………………………………………………………………….. 123

6.9. Самостоятельное упражнение…………………………………………………………………………………………. 124

Урок 7. Классы и объекты……………………………………………………………………. 125

7.1. Объекты……………………………………………………………………………………………………………………………… 125

7.1.1. Создание объектов………………………………………………………………………………………………….. 125

7.1.2. Обращение к атрибутам и вызов методов…………………………………………………………….. 125

7.1.3. Объектные и классовые атрибуты и методы………………………………………………………… 126

7.2. Классы……………………………………………………………………………………………………………………………….. 127

7.2.1. Объявление класса………………………………………………………………………………………………….. 127

7.2.2. Конструктор и деструктор…………………………………………………………………………………….. 128

7.2.3. Наследование классов……………………………………………………………………………………………. 130

7.2.3.1. Объявление производного класса……………………………………………………………. 130

7.2.3.2. Перекрытие и переопределение методов………………………………………………… 131

7.2.3.3. Множественное наследование…………………………………………………………………. 133

7.2.3.4. Указание декораторов функций у методов……………………………………………… 134

7.2.4. Классовые атрибуты и методы. Статические методы………………………………………… 134

7.2.5. Закрытые атрибуты и методы……………………………………………………………………………….. 135

7.2.6. Свойства………………………………………………………………………………………………………………….. 136

7.2.7. Добавленные атрибуты………………………………………………………………………………………….. 138

7.2.7.1. Ограничение набора создаваемых атрибутов……………………………………….. 138

7.2.8. Вложенные классы…………………………………………………………………………………………………. 139

7.2.9. Класс как значение…………………………………………………………………………………………………. 140

7.3. Декораторы классов…………………………………………………………………………………………………………. 140

7.4. Что еще нужно знать об объектах и классах………………………………………………………………….. 141

7.5. Самостоятельные упражнения………………………………………………………………………………………… 142

Урок 8. Модули и пакеты…………………………………………………………………….. 143

8.1. Модули. Импорт и подключение…………………………………………………………………………………….. 143

8.1.1. Использование сущностей из другого модуля……………………………………………………… 143

8.1.1.1. Импорт сущностей…………………………………………………………………………………….. 143

8.1.1.2. Подключение модулей………………………………………………………………………………. 144

8.1.2. Указание сущностей, доступных извне………………………………………………………………… 145

8.1.3. Создание своих модулей………………………………………………………………………………………… 145

8.2. Пакеты……………………………………………………………………………………………………………………………….. 146

8.2.1. Создание пакетов……………………………………………………………………………………………………. 146

8.2.2. Импорт и подключение из пакетов. Пути сущностей………………………………………….. 146

8.3. Что еще нужно знать о модулях, импорте и подключении……………………………………………. 148

8.4. Самостоятельное упражнение…………………………………………………………………………………………. 149

Урок 9. Исключения и их обработка. Обработчики контекстов…………… 150

9.1. Исключения……………………………………………………………………………………………………………………….. 150

9.1.1. Введение в исключения………………………………………………………………………………………….. 150

9.1.2. Обработка исключений………………………………………………………………………………………….. 151

9.1.3. Возбуждение исключений……………………………………………………………………………………… 153

9.1.4. Объявление своих исключений……………………………………………………………………………… 154

9.2. Обработчики контекстов………………………………………………………………………………………………….. 154

Часть II. Язык Python: расширенные инструменты……….. 157

Урок 10. Функции и классы особой функциональности………………………. 159

10.1. Создание генераторов-функций…………………………………………………………………………………….. 159

10.2. Dunder-методы и их использование………………………………………………………………………………. 160

10.2.1. Преобразование объектов в другие типы данных……………………………………………. 161

10.2.2. Поддержка арифметических операций с объектами.
Перегрузка операторов………………………………………………………………………………………. 162

10.2.3. Поддержка операций сравнения……………………………………………………………………….. 164

10.2.4. Создание своих итераторов……………………………………………………………………………….. 164

10.2.5. Создание своих последовательностей……………………………………………………………… 166

10.2.6. Создание своих отображений……………………………………………………………………………. 167

10.2.7. Прочие dunder-методы……………………………………………………………………………………….. 168

10.3. Написание менеджеров контекста………………………………………………………………………………… 170

10.3.1. Функции-менеджеры контекста…………………………………………………………………………. 170

10.3.2. Классы-менеджеры контекста…………………………………………………………………………… 171

10.4. Перечисления………………………………………………………………………………………………………………….. 172

10.5. Что еще нужно знать о классах особой функциональности……………………………………….. 175

10.6. Самостоятельные упражнения………………………………………………………………………………………. 176

Урок 11. Регулярные выражения………………………………………………………….. 177

11.1. Создание регулярных выражений…………………………………………………………………………………. 177

11.2. Написание регулярных выражений………………………………………………………………………………. 177

11.2.1. Метасимволы………………………………………………………………………………………………………. 178

11.2.2. Поднаборы…………………………………………………………………………………………………………… 178

11.2.3. Вариант……………………………………………………………………………………………………………….. 179

11.2.4. Квантификаторы…………………………………………………………………………………………………. 179

11.2.5. Утверждения………………………………………………………………………………………………………… 180

11.2.6. Группы…………………………………………………………………………………………………………………. 181

11.2.7. Обычные символы………………………………………………………………………………………………. 182

11.2.8. Флаги……………………………………………………………………………………………………………………. 182

11.2.9. Тестирование регулярных выражений……………………………………………………………… 183

11.3. Использование регулярных выражений……………………………………………………………………….. 184

11.3.1. Поиск первого совпадения…………………………………………………………………………………. 184

11.3.2. Поиск всех совпадений……………………………………………………………………………………….. 186

11.3.3. Прочие случаи использования…………………………………………………………………………… 186

11.4. Что еще нужно знать о регулярных выражениях и не только…………………………………….. 188

11.5. Самостоятельные упражнения………………………………………………………………………………………. 188

Урок 12. Установка и использование дополнительных библиотек……….. 189

12.1. Работа с дополнительными библиотеками. Утилита pip……………………………………………. 189

12.2. Библиотека Pillow: работа с графикой………………………………………………………………………….. 191

12.3. Программа для создания графических миниатюр, версия 1.0……………………………………. 192

12.4. Модуль argparse: обработка командных ключей……………………………………………………….. 194

12.4.1. Введение в командные ключи и их обработка…………………………………………………. 194

12.4.2. Создание объекта обработчика командных ключей………………………………………. 195

12.4.3. Описание командных ключей……………………………………………………………………………. 196

12.4.4. Обработка командных ключей………………………………………………………………………….. 198

12.5. Программа для создания графических миниатюр, версия 2.0……………………………………. 199

12.6. Что еще нужно знать о дополнительных библиотеках……………………………………………….. 201

12.7. Самостоятельные упражнения………………………………………………………………………………………. 202

Урок 13. Многопоточное и многопроцессное программирование…………. 203

13.1. Многопоточное программирование……………………………………………………………………………… 203

13.1.1. Введение в потоки. Глобальная блокировка интерпретатора……………………….. 203

13.1.2. Создание потоков……………………………………………………………………………………………….. 204

13.1.3. Блокировки………………………………………………………………………………………………………….. 206

13.1.4. Программа для создания графических миниатюр, версия 3.0………………………… 207

13.1.5. Очереди………………………………………………………………………………………………………………… 209

13.1.6. Программа для создания графических миниатюр, версия 3.1………………………… 211

13.2. Многопроцессное программирование………………………………………………………………………….. 213

13.2.1. Процессы и работа с ними…………………………………………………………………………………. 213

13.2.2. Программа для создания графических миниатюр, версия 4.0………………………… 214

13.3. Что еще нужно знать о потоках и процессах……………………………………………………………….. 215

13.4. Самостоятельные упражнения………………………………………………………………………………………. 216

Урок 14. Конкурентное программирование………………………………………….. 217

14.1. Сопрограммы………………………………………………………………………………………………………………….. 217

14.1.1. Введение в сопрограммы. Фьючеры………………………………………………………………….. 217

14.1.2. Сопрограммы-методы………………………………………………………………………………………… 220

14.1.2.1. Асинхронные итераторы. Цикл перебора с приостановкой……………. 220

14.1.2.2. Асинхронные менеджеры контекста.
Асинхронный обработчик контекста…………………………………………………. 221

14.1.3. Сопрограммы-генераторы…………………………………………………………………………………. 222

14.2. Задачи……………………………………………………………………………………………………………………………… 222

14.2.1. Создание и выполнение задач…………………………………………………………………………… 222

14.2.2. Одновременный запуск задач……………………………………………………………………………. 223

14.2.3. Группы задач………………………………………………………………………………………………………. 224

14.2.4. Прерывание задач………………………………………………………………………………………………. 225

14.3. Асинхронные очереди……………………………………………………………………………………………………. 226

14.4. Библиотека aiofiles: конкурентная работа с файлами………………………………………………… 226

14.5. Программа для создания графических миниатюр, версия 5.0……………………………………. 227

14.6. Самостоятельные упражнения………………………………………………………………………………………. 230

Урок 15. Аннотации типов и документирование кода. Датаклассы……… 231

15.1. Аннотации типов и их применение……………………………………………………………………………….. 231

15.1.1. Написание аннотаций типов……………………………………………………………………………… 231

15.1.1.1. Указание типов в аннотациях…………………………………………………………….. 232

15.1.1.2. Указание типов элементов у списков и кортежей…………………………….. 233

15.1.1.3. Указание типов элементов у последовательностей и отображений
произвольных типов……………………………………………………………………………. 234

15.1.1.4. Указание типов у функций, присваиваемых переменным……………….. 235

15.1.1.5. Указание типов у фьючеров……………………………………………………………….. 235

15.1.1.6. Указание типов значений, выдаваемых генераторами-функциями… 236

15.1.1.7. Обобщенные типы……………………………………………………………………………….. 237

15.1.2. Получение аннотаций, заданных у функций и методов………………………………….. 237

15.2. Строки документирования…………………………………………………………………………………………….. 238

15.3. Датаклассы……………………………………………………………………………………………………………………… 241

15.3.1. Простейшие датаклассы…………………………………………………………………………………….. 241

15.3.2. Более сложные датаклассы……………………………………………………………………………….. 243

15.4. Что еще нужно знать об аннотациях типов………………………………………………………………….. 245

15.5. Самостоятельное упражнение………………………………………………………………………………………. 245

Часть III. Практическое Python-программирование……… 247

Урок 16. Загрузка и анализ данных из Интернета………………………………… 249

16.1. Библиотека requests: загрузка файлов из Интернета…………………………………………………… 249

16.1.1. Requests: отправка клиентских запросов………………………………………………………….. 249

16.1.2. Requests: обработка полученных серверных ответов…………………………………….. 251

16.1.3. Requests: загрузка больших файлов………………………………………………………………….. 252

16.2. Библиотека Beautiful Soup: парсинг веб-страниц……………………………………………………….. 253

16.2.1. Подготовка к парсингу веб-страницы……………………………………………………………….. 253

16.2.2. Навигация по структуре узлов веб-страницы………………………………………………….. 254

16.2.3. Получение сведений об узле………………………………………………………………………………. 256

16.2.4. Поиск узлов………………………………………………………………………………………………………….. 257

16.2.5. Программа, выводящая заголовки статей на веб-сайте 3DNews.ru……………….. 262

16.2.6. Программа, сохраняющая изображения с заданной веб-страницы,
версия 1.0……………………………………………………………………………………………………………… 263

16.3. Библиотека aiohttp: конкурентная загрузка файлов……………………………………………………. 266

16.3.1. Aiohttp: отправка клиентских запросов……………………………………………………………. 267

16.3.2. Aiohttp: обработка серверных ответов……………………………………………………………… 267

16.3.3. Aiohttp: загрузка больших файлов…………………………………………………………………….. 268

16.3.4. Программа, сохраняющая изображения с заданной веб-страницы,
версия 2.0……………………………………………………………………………………………………………… 269

16.4. Самостоятельные упражнения………………………………………………………………………………………. 271

Урок 17. Разработка веб-приложений, часть 1……………………………………… 272

17.1. Основы библиотеки NiceGUI………………………………………………………………………………………….. 272

17.1.1. Страницы и маршруты……………………………………………………………………………………….. 272

17.1.2. Запуск и остановка веб-приложения…………………………………………………………………. 274

17.1.3. Создание гиперссылок……………………………………………………………………………………….. 275

17.1.4. Параметризованные маршруты и URL-параметры…………………………………………. 276

17.1.5. Обработка событий…………………………………………………………………………………………….. 277

17.1.6. Функция run(), запускающая веб-приложение…………………………………………………. 279

17.2. Основные элементы страниц…………………………………………………………………………………………. 280

17.2.1. Надпись……………………………………………………………………………………………………………….. 280

17.2.2. Графический элемент…………………………………………………………………………………………. 280

17.2.3. Гиперссылка………………………………………………………………………………………………………… 280

17.2.4. Текст в формате Markdown………………………………………………………………………………… 281

17.2.5. Аудиоролик…………………………………………………………………………………………………………. 282

17.2.6. Видеоролик………………………………………………………………………………………………………….. 283

17.2.7. Фрагмент программного кода……………………………………………………………………………. 283

17.3. Разметочные элементы…………………………………………………………………………………………………… 284

17.3.1. Блок-строка…………………………………………………………………………………………………………. 284

17.3.2. Блок-колонка……………………………………………………………………………………………………….. 284

17.3.3. Разделитель…………………………………………………………………………………………………………. 285

17.3.4. Блок-сетка……………………………………………………………………………………………………………. 285

17.3.5. Спойлер……………………………………………………………………………………………………………….. 286

17.3.6. Быстрая разметка страниц…………………………………………………………………………………. 288

17.4. Если вы знаете HTML и CSS………………………………………………………………………………………….. 290

17.4.1. Создание произвольных HTML-элементов………………………………………………………. 290

17.4.2. Указание стилевых классов и встроенных CSS-стилей…………………………………… 291

17.4.3. Обработка событий DOM…………………………………………………………………………………… 292

17.5. Статические и выгруженные файлы……………………………………………………………………………… 292

17.6. Веб-приложение фотогалереи, версия 1.0…………………………………………………………………….. 293

17.7. Что еще нужно знать о NiceGUI, часть 1………………………………………………………………………. 296

17.8. Самостоятельные упражнения………………………………………………………………………………………. 297

Урок 18. Работа с базами данных…………………………………………………………. 298

18.1. Введение в реляционные базы данных…………………………………………………………………………. 298

18.2. Библиотека Tortoise ORM: удобная работа с базами данных……………………………………. 299

18.3. Модели…………………………………………………………………………………………………………………………….. 299

18.3.1. Объявление моделей…………………………………………………………………………………………… 300

18.3.2. Настройки, поддерживаемые всеми полями…………………………………………………….. 300

18.3.3. Типы полей………………………………………………………………………………………………………….. 301

18.3.4. Создание межтабличных связей………………………………………………………………………… 302

18.3.5. Настройки самой модели…………………………………………………………………………………… 303

18.4. Соединение с базой данных и инициализация схемы…………………………………………………. 304

18.5. Запись данных………………………………………………………………………………………………………………… 305

18.5.1. Создание записей………………………………………………………………………………………………… 305

18.5.2. Правка записей……………………………………………………………………………………………………. 306

18.5.3. Удаление записей……………………………………………………………………………………………….. 307

18.6. Выборка данных…………………………………………………………………………………………………………….. 307

18.6.1. Поиск записи……………………………………………………………………………………………………….. 307

18.6.2. Извлечение значений из полей записи………………………………………………………………. 308

18.6.3. Фильтрация записей. Наборы записей……………………………………………………………… 308

18.6.3.1. Модификаторы…………………………………………………………………………………….. 309

18.6.4. Сортировка записей……………………………………………………………………………………………. 311

18.6.5. Извлечение первой и последней записей………………………………………………………….. 311

18.6.6. Извлечение заданного количества записей………………………………………………………. 312

18.6.7. Извлечение всех записей…………………………………………………………………………………….. 312

18.6.8. Проверка существования записей……………………………………………………………………… 312

18.6.9. Извлечение связанных записей………………………………………………………………………….. 313

18.6.10. Извлечение записей в виде списка словарей………………………………………………….. 314

18.7. Закрытие соединения с базой данных………………………………………………………………………….. 314

18.8. Интеграция Tortoise ORM и NiceGUI…………………………………………………………………………….. 315

18.9. Веб-приложение фотогалереи, версия 2.0…………………………………………………………………….. 315

18.9.1. Модели пользователя и изображения……………………………………………………………….. 315

18.9.2. База данных веб-приложения……………………………………………………………………………. 317

18.9.3. Вывод изображений из базы данных………………………………………………………………… 317

18.10. Что еще нужно знать о библиотеке Tortoise ORM……………………………………………………… 319

18.11. Самостоятельные упражнения……………………………………………………………………………………. 320

Урок 19. Разработка веб-приложений, часть 2……………………………………… 321

19.1. Элементы управления…………………………………………………………………………………………………….. 321

19.1.1. Кнопка………………………………………………………………………………………………………………….. 321

19.1.2. Поле ввода…………………………………………………………………………………………………………… 321

19.1.3. Область редактирования……………………………………………………………………………………. 322

19.1.4. Флажок…………………………………………………………………………………………………………………. 322

19.1.5. Набор переключателей………………………………………………………………………………………. 323

19.1.6. Раскрывающийся список……………………………………………………………………………………. 323

19.1.7. Поле для ввода числа…………………………………………………………………………………………. 325

19.1.8. Регулятор……………………………………………………………………………………………………………… 326

19.1.9. Поле для выбора файлов……………………………………………………………………………………. 326

19.2. Хранилища данных NiceGUI…………………………………………………………………………………………. 328

19.3. Хеширование паролей……………………………………………………………………………………………………. 329

19.4. Веб-приложение фотогалереи, версия 3.0…………………………………………………………………….. 330

19.4.1. Верхнее меню и секретный ключ………………………………………………………………………. 330

19.4.2. Страницы входа и выхода…………………………………………………………………………………. 331

19.4.3. Страница пользовательского профиля……………………………………………………………… 333

19.4.4. Страницы добавления и удаления изображений…………………………………………….. 335

19.5. Что еще нужно знать о библиотеке NiceGUI, часть 2………………………………………………….. 338

19.6. Самостоятельное упражнение………………………………………………………………………………………. 338

Урок 20. Разработка графических приложений……………………………………. 339

20.1. Библиотека Toga: разработка графических приложений…………………………………………… 339

20.2. Основы библиотеки Toga……………………………………………………………………………………………….. 339

20.2.1. Окна и контейнеры……………………………………………………………………………………………… 339

20.2.2. Обработка событий…………………………………………………………………………………………….. 341

20.2.3. Оформление приложения. Стили……………………………………………………………………….. 342

20.2.4. Запуск и останов приложения……………………………………………………………………………. 343

20.3. Простейшие элементы окон…………………………………………………………………………………………… 344

20.3.1. Свойства и методы, поддерживаемые всеми элементами окон………………………. 344

20.3.2. Надпись……………………………………………………………………………………………………………….. 345

20.3.3. Поле ввода…………………………………………………………………………………………………………… 345

20.3.4. Область редактирования……………………………………………………………………………………. 345

20.3.5. Флажок…………………………………………………………………………………………………………………. 346

20.3.6. Кнопка………………………………………………………………………………………………………………….. 346

20.3.7. Графический элемент…………………………………………………………………………………………. 347

20.3.8. Поле для ввода целого числа…………………………………………………………………………….. 347

20.3.9. Поле для ввода пароля……………………………………………………………………………………….. 348

20.3.10. Регулятор…………………………………………………………………………………………………………… 348

20.4. Модели и списки……………………………………………………………………………………………………………… 349

20.4.1. Модели…………………………………………………………………………………………………………………. 349

20.4.2. Списковые элементы управления……………………………………………………………………… 351

20.4.2.1. Раскрывающийся список…………………………………………………………………….. 351

20.4.2.2. Таблица………………………………………………………………………………………………… 352

20.5. Контейнеры……………………………………………………………………………………………………………………… 353

20.5.1. Стопка………………………………………………………………………………………………………………….. 353

20.5.2. Блокнот с вкладками…………………………………………………………………………………………… 354

20.5.3. Панель с прокруткой…………………………………………………………………………………………… 355

20.6. Задание стилей у элементов окон…………………………………………………………………………………. 356

20.7. Управление окнами………………………………………………………………………………………………………… 358

20.7.1. Задание главного окна приложения………………………………………………………………….. 358

20.7.2. Создание вторичных окон………………………………………………………………………………….. 360

20.7.3. Вывод стандартных модальных окон………………………………………………………………. 363

20.8. Интеграция библиотек Toga и Tortoise ORM………………………………………………………………… 364

20.9. Что еще нужно знать о библиотеке Toga………………………………………………………………………. 364

20.10. Самостоятельные упражнения……………………………………………………………………………………. 365

Урок 21. Математика……………………………………………………………………………. 366

21.1. Библиотека Matplotlib: вывод графиков……………………………………………………………………….. 366

21.1.1. Основные принципы Matplotlib………………………………………………………………………….. 366

21.1.1.1. Вывод простого графика…………………………………………………………………….. 366

21.1.1.2. Вывод двух графиков на одних координатных осях……………………….. 368

21.1.1.3. Вывод двух графиков на разных координатных осях……………………… 369

21.1.1.4. Настройка графиков……………………………………………………………………………. 370

21.1.2. Создание координатных осей……………………………………………………………………………. 372

21.1.3. Рисование графиков разных типов……………………………………………………………………. 373

21.1.4. Вывод и оформление графиков………………………………………………………………………….. 377

21.2. Библиотека NumPy: обработка многомерных массивов…………………………………………….. 378

21.3. Что еще нужно знать о библиотеках Matplotlib и NumPy…………………………………………… 382

Урок 22. Искусственный интеллект……………………………………………………… 383

22.1. Регистрация в личном кабинете GigaChat API и получение ключа авторизации…….. 383

22.2. Библиотеки LangChain, langchain-community и langchain-gigachat……………………………. 384

22.3. Разработка ИИ-клиентов………………………………………………………………………………………………… 384

22.3.1. Соединение с большой языковой моделью………………………………………………………. 384

22.3.2. ИИ-клиент: отправка запросов и получение ответов………………………………………. 385

22.3.3. ИИ-клиент: хранение истории взаимодействия с языковой моделью…………….. 387

22.3.4. ИИ-клиент: очистка истории……………………………………………………………………………… 388

22.3.5. Получение ответа по частям……………………………………………………………………………… 390

22.3.6. Конкурентная работа с языковыми моделями…………………………………………………. 391

22.4. Разработка ИИ-агентов………………………………………………………………………………………………….. 392

22.4.1. Объявление инструментов………………………………………………………………………………….. 392

22.4.1.1. Инструмент для поиска в Интернете средствами DuckDuckGo………. 393

22.4.2. Создание ИИ-агента……………………………………………………………………………………………. 393

22.4.3. ИИ-агент: отправка запросов и получение ответов…………………………………………. 394

22.4.4. Обработка ответов……………………………………………………………………………………………… 396

22.4.5. ИИ-агент: хранение истории взаимодействия с языковой моделью………………. 397

22.4.6. Работа с состоянием ИИ-агента………………………………………………………………………… 399

22.4.7. ИИ-агент: очистка истории………………………………………………………………………………… 400

22.5. Что еще нужно знать о работе с искусственным интеллектом…………………………………… 401

22.6. Самостоятельное упражнение………………………………………………………………………………………. 402

Заключение………………………………………………………………………………………….. 403

Приложения…………………………………………………………………………………… 405

Приложение 1. Установка исполняющей среды Python………………………… 407

Приложение 2. Приоритет операторов Python………………………………………. 411

Приложение 3. Использование ИИ для изучения Python
и написания программного кода………………………………………………………….. 412

Приложение 4. Описание файлового архива………………………………………… 416

Предметный указатель…………………………………………………………………………. 417

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