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

Представляем новую книгу: “В стране смельчаков. Татарская сказка”

В стране смельчаков. Татарская сказка

Это сказка о юноше, которому пришлось стать смелым, чтобы спасти целый город и свою любимую. Известный татарский писатель Ахмет Файзи сочинил ее на основе татарских сказок и легенд. Данир совсем не хотел становиться воином, ему больше нравилось слушать пение птиц, играть на дудочке и любоваться лебедями. И однажды его отец, славный охотник Азат Мерген решил, что пора Даниру становиться настоящим батыром, и отправил сына в далекое и опасное путешествие.

Книгу можно купить в нашем интернет-магазине.

 

Об авторе

Ахмет Файзи

Ахмет Файзи  — известный татарский писатель, лауреат Государственной премии им. Г. Тукая — написал эту сказку на основе татарских народных сказаний и  легенд.

О художнике

Гульнара-Фаляхова

Гульнара Фаляхова  представляет молодое поколение художников Башкирии. Ее работы, пронизанные духом тюркской культуры, украшают российские и зарубежные галереи.

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

Представляем мастер-класс Евгении Тучкевич: Adobe Illustrator CC 2022!

Adobe Illustrator CC 2022. Мастер-класс Евгении Тучкевич

В нашем издательстве вышла книга “Adobe Illustrator CC 2022. Мастер-класс Евгении Тучкевич“.

В основу книги положена эффективная методика обучения дизайнеров, опробованная в учебных аудиториях. Последовательно в виде уроков рассмотрены основные инструменты, технологии и приемы построения для различных проектов в программе Adobe Illustrator на примере версии CС 2022. Особое внимание уделено созданию графики и техникам рисования в программе. Рассмотрены вопросы подготовки графики для Web или печати, в том числе прозрачных объектов. Описаны многочисленные способы трансформации объектов, использование графических стилей, кистей, узорных заливок, символов, эффектов и  многое другое. Учебные файлы, созданные специально для курса, размещены на сайте издательства.

Для широкого круга пользователей

НОВОЕ ИЗДАНИЕ ПОПУЛЯРНОЙ КНИГИ ТЕПЕРЬ В ЦВЕТЕ!

Книга будет полезна:

  • начинающим пользователям как понятное, пошаговое руководство для быстрого изучения программы;
  • дизайнерам как набор готовых решений;
  • преподавателям как сборник превосходных методических материалов;
  • профессиональным пользователям как справочник по работе в программе.

Книгу можно купить в нашем интернет-магазине.

Содержание

ПРЕДИСЛОВИЕ 11
Введение. ОСНОВЫ КОМПЬЮТЕРНОЙ ГРАФИКИ 13
Типы компьютерной графики 14
Характеристики растрового изображения, или
Что нужно знать, создавая и сохраняя файл 15
Пиксел 15
Разрешение изображения 16
Сглаживание (anti-alias) 16
Цветовые модели 17
Модель RGB 17
Модель CMYK 19
Модель HSB 20
Как выбрать цвет в Illustrator? 20
Диалоговое окно Color Picker (Подборщик цвета) … 20
Палитра Color (Цвет) 21
Палитра Swatches (Образцы) 22Урок 1. ИНТЕРФЕЙС ПРОГРАММЫ 23
Интерфейс 24
Работа с быстрыми («горячими») клавишами 26
Палитры 26
Функциональные клавиши 27
Перестройка палитр 27
Выбор и скрытие палитры 29
Панель инструментов 29
Определение инструмента 31
Выбор инструмента 31
Режимы отображения 32
Способы изменения масштаба просмотра 32
Дополнительные средства изменения масштаба 34
Быстрое перемещение по изображению 35
Работа с несколькими монтажными областями
в одном документе 35
Artboard (Монтажная область) 35
Режимы просмотра графических объектов 35Урок 2. ПОСТРОЕНИЕ ПРИМИТИВОВ. ВЫРАВНИВАНИЕ. ГРУППИРОВКА 37
Построение примитивов 38
Инструменты Rectangle (Прямоугольник),
Rounded Rectangle (Скругленный прямоугольник),
Ellipse (Эллипс) 38
Инструмент Polygon (Полигон) 40
Инструмент Star (Звезда) 41
Группа инструментов незамкнутых линий 42
Выделение объектов 44
Инструменты выделения объектов 45
Команды главного меню Select (Выделение) 46
Команды подменю Select | Same
(Выделение | Подобно) 47
Присвоение цвета объектам 48
Атрибуты объектов 48
Изменение цвета атрибутов 49
Проект «Улитка» 49
Порядок следования объектов 51
Проект «Забавные животные». 51
Обводка объекта. Палитра Stroke (Обводка) 53
Создание обводок с переменной шириной 54
Сохранение профилей ширины 55
Группировка объектов 56
Работа с элементами группы 56
Выравнивание объектов.
Палитра Align (Выравнивание) 57Урок 3. ЦВЕТ И РАСКРАШИВАНИЕ 61
Цветовая модель документа 62
Заливка и обводка объектов 62
Палитра Swatches (Образцы) 63
Сохранение образца в палитре 64
Библиотеки образцов 65
Типы образцов 66
Градиент 68
Палитра Gradient (Градиент) 68
Кнопка Edit Gradient (Редактировать градиент). Инструмент Gradient (Градиент) 71
Цветовые группы 76
Создание и редактирование цветовой группы 76Урок 4. ВСПОМОГАТЕЛЬНЫЕ ЭЛЕМЕНТЫ ИНТЕРФЕЙСА 79
О вспомогательных элементах интерфейса 80
Краткий обзор монтажной области 80
Границы и габариты выделенного объекта 81
Rulers (Линейки) 81
Grid (Сетка) 82
Guides (Направляющие) 83
Smart Guides (Умные направляющие) 84
Проект «Создание упаковки» 85Урок 5. ТРАНСФОРМАЦИЯ ОБЪЕКТОВ 89
Преобразование объекта инструментом Selection
(Выделение) 90
Перемещение объектов 91
Команда Move (Перемещение) 91
Перемещение при помощи палитр Properties
(Свойства) и Transform (Трансформация) 92
Масштабирование объектов 93
Команда Scale (Масштабирование) 93
Масштабирование при помощи палитр
Properties (Свойства), Transform (Трансформация)… 94 Инструмент Scale (Масштабирование) 94
Поворот объектов 94
Команда Rotate (Поворот) 94
Поворот при помощи палитр
Properties (Свойства), Transform (Трансформация)… 95 Инструмент Rotate (Поворот) 95
Отражение объектов 96
Команда Reflect (Отражение) 96
Отражение при помощи палитр Properties
(Свойства),Transform (Трансформация) 96
Инструмент Reflect (Отражение) 97
Наклон объектов 98
Команда Shear (Наклон) 98
Инструмент Shear (Наклон) 98
Применение нескольких преобразований
одновременно 99
Команда Transform Each
(Трансформировать каждый) 99
Инструмент Free Transform
(Свободная трансформация) 100
Повтор трансформации 102
Проект «Дом vs замок» 103
Инструмент Puppet Warp
(Марионеточная деформация) 105
Проект «Осьминожка» 106Урок 6. ЭФФЕКТЫ ТРАНСФОРМАЦИИ 107
Эффекты искажения и трансформации 108
Эффект Free Distort (Свободная деформация) 108
Эффект Pucker & Bloat (Втягивание и раздутие) 109
Эффект Roughen (Огрубление) 110
Эффект Tweak (Трепать) 111
Эффект Twist (Скручивание) 112
Эффект Zig Zag (Зигзаг) 112
Эффект Transform (Трансформировать) 113
Проект «Цветы в вазе» 114
Проект «Визитка» 116Урок 7. СОЗДАНИЕ СЛОЖНЫХ ФОРМ ИЗ ПРОСТЫХ 119
Палитра Pathfinder (Обработка контуров) 120
Проект «Пиктограмма» 122
Голова 123
Тело 124
Инструмент Shaper (Мастер фигур) 127
Инструмент Shape Builder (Создание форм) 128
Проект «Рыбка» 128

Урок 8. РАБОТА С КРИВЫМИ БЕЗЬЕ 131
Создание прямолинейных контуров пером 132
Создание криволинейных сегментов пером 133
Основные элементы кривых 134
Типы опорных точек 136
Редактирование контуров 136
Инструменты для работы с контурами 136
Создание угловых точек в процессе
построения кривых 138
Упражнение «Цветок» 139
Упражнение «Сердце за две опорные точки» 140
Создание векторного объекта по контуру
растрового изображения 141
Использование операций редактирования
опорных точек 142
Операции с опорными точками 143
Выравнивание опорных точек 143
Преобразование обводок в составные контуры 144
Создание дополнительного контура с отступом 145
Удаление мусора командой Clean Up (Вычистить) 146
Разрезание объектов и контуров 146
Соединение двух открытых контуров 147
Задания для самостоятельной работы 148

Урок 9. ГРАДИЕНТНАЯ СЕТКА 149
Что такое градиентная сетка? 150
Способы создания сеточного объекта 151
Создание сеточного объекта при помощи инструмента Mesh (Сетка) 151
Использование команды Create Gradient Mesh
(Создать градиентную сетку) 152
Киборг из градиентной сетки 153

Урок 10. РИСОВАНИЕ ПО СИЛУЭТУ 157
Техники рисования в программе 158
Стандартная техника 158
Рисование по силуэту 159
Проект «Гриб» 161
Создание силуэта по эскизу 161
Рисование деталей внутри силуэта 162
Работа с цветом 163
Детали в иллюстрации 164
Задний план 164

Урок 11. БЫСТРАЯ ЗАЛИВКА 167
Рисование с использованием Live Paint
(Быстрая заливка) 168
Создание группы быстрой заливки. 168
Ограничения возможностей быстрой заливки 169
Редактирование группы быстрой заливки 169
Раскрашивание с помощью инструмента
Live Paint Bucket (Ведро быстрой заливки) 170
Замыкание зазоров 171
Разбор или отмена группы с быстрой заливкой 171
Проект «Витраж» 171

Урок 12. ТРАССИРОВКА ИЗОБРАЖЕНИЙ 175
Инструмент Image Trace (Трассировка изображения) 176
Примеры использования 177
Наборы предустановленных параметров 179
Настройка других параметров инструмента
Image Trace (Быстрая трассировка) 181

Урок 13. ИНФОГРАФИКА. ПОСТРОЕНИЕ В ПЕРСПЕКТИВЕ 185

Инфографика 186
Базовые принципы перспективного рисования 187
Perspective Grid (Сетка перспективы) 189
Построение объектов в перспективе 191
Добавление объектов в перспективу 193
Добавление текста и символов в перспективу 193
Проект «Вертолетная площадка» 193

Урок 14. РАБОТА С ТЕКСТОМ 197
Создание текста 198
Способы создания текста 199
Палитры форматирования текста 201
Инструмент Area Type (Текст в области) 204
Текст по контуру 208
Преобразование текста в кривые 209
Специальные символы. Палитра Glyphs (Глифы) 210
Наследование текста. 210
Стили символов и абзацев 211
Инструмент Touch Type Tool (Изменение текста) 212
Типы шрифтов 212
Команды меню Type (Текст) 214

Урок 15. СЛОИ. МАСКИ ОТСЕЧЕНИЯ 215
Палитра Layers (Слои) 216
Преимущества работы со слоями 216
Основные функции палитры Layers (Слои) 217
Clipping Mask (Маска отсечения) 220
Векторная маска отсечения 220
Текстовая маска отсечения 221
Создание обтравочного контура 223

Урок 16. СТИЛИ И ЭФФЕКТЫ 225
Атрибуты оформления 226
Палитра Appearance (Оформление) 226
Палитра Layers (Слои) 229
Палитра Graphic Styles (Графические стили) 231
Проект «Road» (Дорога) 231
Работа с эффектами. Меню Effect (Эффект) 233
Об эффектах 233
Эффекты 3D (Classic) (объемное изображение) 234
Эффекты 3D and Materials
(объемное изображение и материалы) 238
Сводка по эффектам 241

Урок 17. ИМПОРТ И ЭКСПОРТ 243
Импорт в Adobe Illustrator 244
Импорт текста 244
Импорт векторных изображений 244
Импорт растровых изображений 246
Экспорт из Adobe Illustrator 250
Использование нескольких монтажных областей
при различных размерах вывода 252

Урок 18. УЗОРНАЯ ЗАЛИВКА 253
Особенности работы с узорами 254
Изменение стандартных узоров 255
Создание заказного узора 256
Создание узора «кирпичная кладка» 257
Библиотеки узоров 258

Урок 19. КИСТИ 261
Кисти 262
Типы кистей 262
Палитра Вrushes (Кисти) 263
Растровые изображения в кистях 264
Параметры кистей 264
Проект «Дикая яблоня» 275
Рисование яблони 275
Яблоня в цвету 276

Урок 20. СИМВОЛЫ 281
Палитра Symbols (Символы) 282
Создание символа 282
Замена образца символа 283
Отмена связи с символом 283
Инструменты работы с символами 283
Создание наборов символов 284
Перемещение символов в наборе 285
Уплотнение и разброс символов в наборе 285
Изменение размера символов в наборе 285
Поворот символов 285
Изменение цвета 286
Изменение прозрачности 286
Присвоение стиля 287
Быстрое редактирование символа в палитре 287
Библиотеки символов 288

Урок 21. РАБОТА С ПРОЗРАЧНОСТЬЮ 290
О прозрачности 291
Палитра Transparency (Прозрачность) 292
Создание прозрачности 294
Подготовка к печати объектов с прозрачностью 294
Сведения об обработке прозрачности 294
Команда Flatten Transparency
(Сведение прозрачности) 295
Пример 1. Векторные объекты с режимами смешивания 296
Пример 2. Векторные объекты на растровом изображении 298
Пример 3. «Тени на плетени» 302

Урок 22. ПОДГОТОВКА ГРАФИКИ ДЛЯ WEB 305
История развития Web-дизайна 306
Растровые форматы файлов для Web 309
Формат SVG (Scalable Vector Graphics) 310
CSS в Adobe Illustrator 312
Палитра CSS Properties
(Свойства каскадных таблиц стилей) 312
Экспорт частей макета для различных устройств 315
Пиксельная плотность 315
Палитра Asset Export (Экспорт ресурсов) 316
Команда Save for Web 318

Тучкевич Евгения Ивановна, сертифицированный инструктор (Adobe Certified Instructor) по продуктам Adobe Photoshop СС и Adobe Illustrator СС, имеющая многолетний опыт подготовки профессиональных дизайнеров по программам магистратуры и краткосрочного обучения по компьютерному дизайну. Руководитель специальности «Компьютерный дизайн» в Высшей инженерной школе ИДО СПбПУ, Член Союза Дизайнеров России, директор МОНЦ «Autodesk-Политехник». Профессионал в области дизайна и рекламы, имеющая опыт рекламной работы со многими компаниями и журналами, автор курса «Advertising promotions: development & implementation», автор курсов по продуктам «Adobe». Автор бестселлеров серии «Adobe Photoshop. Мастер-класс Евгении Тучкевич» и «Самоучитель Adobe Illustrator CS5/CS6/СС/CC2018».

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

Наши сказки – в каталоге “100 лучших книг”!

100 лучших новых книг для детей и подростков

Дорогие друзья, мы рады сообщить, что наши книги “Девочка Бусинка с берегов Охотского моря. Эвенкийская сказка” Галины Емельяновой с иллюстрациями Карины Соловьевой и “Хранитель горшочка с золотом. Ирландские сказки о лепреконах” Байбры Маккарти вошли в каталог “100 лучших новых книг для детей и подростков” за 2022 год Центральной московской библиотеки им. Гайдара. Поздравляем авторов и иллюстраторов этих замечательных книг!

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

Представляем книгу “Qt 6. Разработка оконных приложений на C++”

Qt 6. Разработка оконных приложений на C++

В нашем издательстве опубликована книга Николая Прохоренка “Qt 6. Разработка оконных приложений на C++“.

Описываются базовые возможности библиотеки Qt, позволяющей создавать приложения с графическим интерфейсом на языке C++. Книга ориентирована на тех, кто уже знаком с языком программирования C++ и хотел бы научиться разрабатывать оконные приложения. Рассматриваются способы обработки событий, управление свойствами окна, создание формы, а также все основные компоненты (кнопки, текстовые поля, списки, таблицы, меню и др.) и варианты их размещения внутри окна. Книга содержит большое количество практических примеров, помогающих начать разрабатывать приложения с графическим интерфейсом самостоятельно. Она будет полезна в качестве самоучителя для начинающих разработчиков. Читатели, уже имеющие опыт, могут использовать ее как удобный справочник.

  • Управление окном приложения
  • Обработка сигналов и событий
  • Размещение компонентов внутри окна
  • Основные компоненты
  • Списки и таблицы
  • Работа с графикой и изображениями
  • Графическая сцена
  • Диалоговые окна
  • SDI- и MDI-приложения
  • Редактор Qt Creator

От автора

Qt — это популярная библиотека, позволяющая создавать приложения с графическим интерфейсом на языке C++. Она очень проста в использовании и идеально подходит для разработки приложений практически любой сложности. Библиотека является кросс-платформенной, поэтому мы можем создавать оконные приложения под Windows, Linux и Mac, а также мобильные приложения под Android и iOS.

В этой книге мы рассмотрим процесс создания оконных приложений применитель- но к операционной системе Windows. Для сборки приложений будем пользоваться компилятором MinGW, а для набора кода — редактором Qt Creator, входящим в состав библиотеки Qt.

Для полного понимания материала книги от читателя потребуется знание языка C++.

Чтобы уменьшить размер книги, основная часть кода примеров вынесена в отдельные проекты, которые расположены в электронном архиве. Электронный архив можно загрузить с сервера издательства «БХВ-Петербург» по ссылке https://zip.bhv.ru/9785977511803.zip или со страницы книги на сайте www.bhv.ru (см. приложение).

Желаю приятного изучения и надеюсь, что книга поможет вам реализовать как самые простые, так и самые сложные приложения.

Книгу можно купить в нашем интернет-магазине.

Введение………………………………………………………………………………………………….. 9

Глава 1. Первые шаги……………………………………………………………………………. 11

1.1. Создание структуры каталогов…………………………………………………………………………………………. 12

1.2. Добавление пути в переменную PATH………………………………………………………………………………. 12

1.3. Работа с командной строкой……………………………………………………………………………………………… 14

1.4. Установка Qt 6…………………………………………………………………………………………………………………….. 14

1.5. Настройка редактора Qt Creator……………………………………………………………………………………….. 23

1.6. Первая программа на Qt…………………………………………………………………………………………………….. 27

1.7. Структура программы………………………………………………………………………………………………………… 32

1.8. Запуск приложения двойным щелчком на значке файла………………………………………………… 35

1.9. ООП-стиль создания окна…………………………………………………………………………………………………… 36

1.10. Создание проекта с формой…………………………………………………………………………………………….. 39

1.11. Доступ к документации……………………………………………………………………………………………………. 45

Глава 2. Работа с символами и строками……………………………………………….. 47

2.1. Псевдонимы для элементарных типов………………………………………………………………………………. 47

2.2. Класс QChar: символ в кодировке Unicode………………………………………………………………………. 48

2.2.1. Создание объекта…………………………………………………………………………………………………….. 48

2.2.2. Изменение регистра символа…………………………………………………………………………………… 50

2.2.3. Проверка типа содержимого символа……………………………………………………………………. 51

2.3. Класс QString: строка в кодировке Unicode……………………………………………………………………… 53

2.3.1. Создание объекта…………………………………………………………………………………………………….. 53

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

2.3.3. Получение и изменение размера строки………………………………………………………………… 55

2.3.4. Доступ к отдельным символам……………………………………………………………………………….. 58

2.3.5. Перебор символов строки………………………………………………………………………………………… 59

2.3.6. Итераторы…………………………………………………………………………………………………………………. 60

2.3.7. Конкатенация строк…………………………………………………………………………………………………. 62

2.3.8. Добавление и вставка символов……………………………………………………………………………… 63

2.3.9. Удаление символов………………………………………………………………………………………………….. 64

2.3.10. Изменение регистра символов………………………………………………………………………………. 68

2.3.11. Получение фрагмента строки……………………………………………………………………………….. 69

2.3.12. Поиск в строке………………………………………………………………………………………………………… 70

2.3.13. Замена в строке………………………………………………………………………………………………………. 73

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

2.3.15. Преобразование строки в число……………………………………………………………………………. 77

2.3.16. Преобразование числа в строку……………………………………………………………………………. 79

2.3.17. Форматирование строки………………………………………………………………………………………… 80

2.3.18. Разделение строки на подстроки по разделителю………………………………………………. 81

2.4. Класс QStringList: список строк………………………………………………………………………………………… 83

2.4.1. Создание объекта…………………………………………………………………………………………………….. 83

2.4.2. Вставка элементов……………………………………………………………………………………………………. 84

2.4.3. Определение и изменение количества элементов………………………………………………….. 87

2.4.4. Удаление элементов…………………………………………………………………………………………………. 88

2.4.5. Доступ к элементам………………………………………………………………………………………………….. 91

2.4.6. Итераторы…………………………………………………………………………………………………………………. 93

2.4.7. Перебор элементов…………………………………………………………………………………………………… 95

2.4.8. Сортировка списка…………………………………………………………………………………………………… 95

2.4.9. Получение фрагмента списка………………………………………………………………………………….. 95

2.4.10. Поиск элементов…………………………………………………………………………………………………….. 96

2.4.11. Замена элементов…………………………………………………………………………………………………… 98

2.4.12. Фильтрация списка………………………………………………………………………………………………… 99

2.4.13. Преобразование списка в строку………………………………………………………………………… 100

Глава 3. Управление окном приложения……………………………………………… 101

3.1. Создание и отображение окна…………………………………………………………………………………………. 101

3.2. Указание типа окна…………………………………………………………………………………………………………… 103

3.3. Изменение и получение размеров окна…………………………………………………………………………… 105

3.4. Местоположение окна на экране…………………………………………………………………………………….. 109

3.4.1. Получение информации о размере экрана…………………………………………………………… 110

3.5. Указание координат и размеров……………………………………………………………………………………… 113

3.5.1. Класс QPoint: координаты точки…………………………………………………………………………. 113

3.5.2. Класс QSize: размеры прямоугольной области…………………………………………………… 115

3.5.3. Класс QRect: координаты и размеры прямоугольной области………………………….. 118

3.6. Разворачивание и сворачивание окна…………………………………………………………………………….. 125

3.7. Управление прозрачностью окна……………………………………………………………………………………. 127

3.8. Модальные окна……………………………………………………………………………………………………………….. 128

3.9. Смена значка в заголовке окна………………………………………………………………………………………… 130

3.10. Изменение цвета фона окна……………………………………………………………………………………………. 132

3.11. Использование изображения в качестве фона……………………………………………………………… 134

3.12. Создание окна произвольной формы……………………………………………………………………………. 136

3.13. Всплывающие подсказки……………………………………………………………………………………………….. 137

3.14. Закрытие окна из программы………………………………………………………………………………………… 139

Глава 4. Обработка сигналов и событий………………………………………………. 141

4.1. Назначение обработчиков сигналов………………………………………………………………………………. 141

4.2. Блокировка и удаление обработчика……………………………………………………………………………… 147

4.3. Генерация сигнала из программы…………………………………………………………………………………… 151

4.4. Использование таймеров………………………………………………………………………………………………….. 153

4.5. Класс QTimer: таймер……………………………………………………………………………………………………….. 156

4.6. Перехват всех событий…………………………………………………………………………………………………….. 160

4.7. События окна…………………………………………………………………………………………………………………….. 164

4.7.1. Изменение состояния окна…………………………………………………………………………………….. 164

4.7.2. Изменение положения окна и его размеров…………………………………………………………. 167

4.7.3. Перерисовка окна или его части…………………………………………………………………………… 169

4.7.4. Предотвращение закрытия окна…………………………………………………………………………… 170

4.8. События клавиатуры………………………………………………………………………………………………………… 171

4.8.1. Установка фокуса ввода………………………………………………………………………………………… 172

4.8.2. Назначение клавиш быстрого доступа………………………………………………………………… 177

4.8.3. Нажатие и отпускание клавиши клавиатуры……………………………………………………… 181

4.9. События мыши………………………………………………………………………………………………………………….. 183

4.9.1. Нажатие и отпускание кнопки мыши…………………………………………………………………… 183

4.9.2. Перемещение указателя…………………………………………………………………………………………. 185

4.9.3. Наведение и выведение указателя………………………………………………………………………… 186

4.9.4. Прокрутка колесика мыши……………………………………………………………………………………. 186

4.9.5. Изменение внешнего вида указателя мыши…………………………………………………………. 187

4.10. Технология drag & drop………………………………………………………………………………………………….. 190

4.10.1. Запуск перетаскивания………………………………………………………………………………………… 190

4.10.2. Класс QMimeData…………………………………………………………………………………………………. 192

4.10.3. Обработка сброса………………………………………………………………………………………………… 195

4.11. Работа с буфером обмена………………………………………………………………………………………………. 198

Глава 5. Размещение нескольких компонентов в окне…………………………. 199

5.1. Абсолютное позиционирование………………………………………………………………………………………. 199

5.2. Горизонтальное и вертикальное выравнивание…………………………………………………………….. 200

5.3. Выравнивание по сетке…………………………………………………………………………………………………….. 204

5.4. Выравнивание компонентов формы………………………………………………………………………………… 206

5.5. Классы QStackedLayout и QStackedWidget…………………………………………………………………….. 209

5.6. Класс QSizePolicy……………………………………………………………………………………………………………… 210

5.7. Объединение компонентов в группу……………………………………………………………………………….. 212

5.8. Панель с рамкой………………………………………………………………………………………………………………… 214

5.9. Панель с вкладками………………………………………………………………………………………………………….. 216

5.10. Компонент «аккордеон»…………………………………………………………………………………………………. 221

5.11. Панели с изменяемым размером……………………………………………………………………………………. 224

5.12. Область с полосами прокрутки……………………………………………………………………………………… 226

Глава 6. Основные компоненты…………………………………………………………… 229

6.1. Надпись……………………………………………………………………………………………………………………………… 229

6.2. Командная кнопка…………………………………………………………………………………………………………….. 234

6.3. Переключатель………………………………………………………………………………………………………………….. 237

6.4. Флажок………………………………………………………………………………………………………………………………. 238

6.5. Однострочное текстовое поле…………………………………………………………………………………………. 239

6.5.1. Основные методы и сигналы…………………………………………………………………………………. 239

6.5.2. Ввод данных по маске……………………………………………………………………………………………. 245

6.5.3. Контроль ввода………………………………………………………………………………………………………. 246

6.6. Многострочное текстовое поле……………………………………………………………………………………….. 247

6.6.1. Основные методы и сигналы…………………………………………………………………………………. 247

6.6.2. Изменение настроек поля………………………………………………………………………………………. 251

6.6.3. Изменение характеристик текста и фона……………………………………………………………… 254

6.6.4. Класс QTextDocument…………………………………………………………………………………………….. 256

6.6.5. Класс QTextCursor………………………………………………………………………………………………….. 260

6.7. Текстовый браузер……………………………………………………………………………………………………………. 265

6.8. Поля для ввода целых и вещественных чисел………………………………………………………………… 267

6.9. Поля для ввода даты и времени……………………………………………………………………………………….. 270

6.10. Календарь……………………………………………………………………………………………………………………….. 273

6.11. Электронный индикатор………………………………………………………………………………………………… 276

6.12. Индикатор процесса……………………………………………………………………………………………………….. 277

6.13. Шкала с ползунком…………………………………………………………………………………………………………. 279

6.14. Класс QDial……………………………………………………………………………………………………………………… 281

6.15. Полоса прокрутки…………………………………………………………………………………………………………… 282

Глава 7. Списки и таблицы………………………………………………………………….. 283

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

7.1.1. Добавление, изменение и удаление элементов……………………………………………………. 283

7.1.2. Изменение настроек……………………………………………………………………………………………….. 285

7.1.3. Поиск элемента внутри списка……………………………………………………………………………… 287

7.1.4. Сигналы…………………………………………………………………………………………………………………… 288

7.2. Список для выбора шрифта……………………………………………………………………………………………… 288

7.3. Роли элементов………………………………………………………………………………………………………………….. 289

7.4. Модели………………………………………………………………………………………………………………………………. 290

7.4.1. Доступ к данным внутри модели………………………………………………………………………….. 290

7.4.2. Класс QStringListModel…………………………………………………………………………………………. 292

7.4.3. Класс QStandardItemModel……………………………………………………………………………………. 293

7.4.4. Класс QStandardItem……………………………………………………………………………………………… 297

7.5. Представления…………………………………………………………………………………………………………………… 302

7.5.1. Класс QAbstractItemView……………………………………………………………………………………….. 302

7.5.2. Простой список………………………………………………………………………………………………………. 307

7.5.3. Таблица…………………………………………………………………………………………………………………… 309

7.5.4. Иерархический список…………………………………………………………………………………………… 312

7.5.5. Управление заголовками строк и столбцов…………………………………………………………. 315

7.6. Управление выделением элементов………………………………………………………………………………… 319

7.7. Промежуточные модели…………………………………………………………………………………………………… 322

Глава 8. Работа с графикой………………………………………………………………….. 325

8.1. Вспомогательные классы…………………………………………………………………………………………………. 325

8.1.1. Класс QColor: цвет…………………………………………………………………………………………………. 326

8.1.2. Класс QPen: перо……………………………………………………………………………………………………. 332

8.1.3. Класс QBrush: кисть……………………………………………………………………………………………….. 333

8.1.4. Класс QLine: линия………………………………………………………………………………………………… 334

8.1.5. Класс QPolygon: многоугольник…………………………………………………………………………… 335

8.1.6. Класс QFont: шрифт………………………………………………………………………………………………. 337

8.2. Класс QPainter………………………………………………………………………………………………………………….. 340

8.2.1. Рисование линий и фигур………………………………………………………………………………………. 341

8.2.2. Вывод текста…………………………………………………………………………………………………………… 344

8.2.3. Вывод изображения……………………………………………………………………………………………….. 346

8.2.4. Преобразование систем координат………………………………………………………………………. 348

8.2.5. Сохранение команд рисования в файл…………………………………………………………………. 349

8.3. Работа с изображениями………………………………………………………………………………………………….. 350

8.3.1. Класс QPixmap……………………………………………………………………………………………………….. 350

8.3.2. Класс QBitmap………………………………………………………………………………………………………… 354

8.3.3. Класс QImage………………………………………………………………………………………………………….. 355

8.3.4. Класс QIcon…………………………………………………………………………………………………………….. 360

Глава 9. Графическая сцена…………………………………………………………………. 363

9.1. Класс QGraphicsScene: сцена………………………………………………………………………………………….. 363

9.1.1. Настройка параметров сцены………………………………………………………………………………. 364

9.1.2. Добавление и удаление графических объектов…………………………………………………… 365

9.1.3. Добавление компонентов на сцену………………………………………………………………………. 366

9.1.4. Поиск объектов……………………………………………………………………………………………………….. 367

9.1.5. Управление фокусом ввода…………………………………………………………………………………… 368

9.1.6. Управление выделением объектов……………………………………………………………………….. 369

9.1.7. Прочие методы и сигналы……………………………………………………………………………………… 370

9.2. Класс QGraphicsView: представление…………………………………………………………………………….. 371

9.2.1. Настройка параметров представления………………………………………………………………… 372

9.2.2. Преобразования между координатами представления и сцены………………………… 373

9.2.3. Поиск объектов……………………………………………………………………………………………………….. 374

9.2.4. Трансформация систем координат……………………………………………………………………….. 375

9.2.5. Прочие методы……………………………………………………………………………………………………….. 375

9.3. Класс QGraphicsItem: базовый класс для графических объектов………………………………… 376

9.3.1. Настройка параметров объекта……………………………………………………………………………. 377

9.3.2. Трансформация объекта………………………………………………………………………………………… 381

9.3.3. Прочие методы……………………………………………………………………………………………………….. 381

9.4. Графические объекты……………………………………………………………………………………………………….. 382

9.4.1. Линия……………………………………………………………………………………………………………………….. 383

9.4.2. Класс QAbstractGraphicsShapeItem………………………………………………………………………. 383

9.4.3. Прямоугольник……………………………………………………………………………………………………….. 384

9.4.4. Многоугольник……………………………………………………………………………………………………….. 384

9.4.5. Эллипс…………………………………………………………………………………………………………………….. 384

9.4.6. Изображение…………………………………………………………………………………………………………… 385

9.4.7. Простой текст…………………………………………………………………………………………………………. 386

9.4.8. Форматированный текст……………………………………………………………………………………….. 387

9.5. Группировка объектов……………………………………………………………………………………………………… 389

9.6. Эффекты…………………………………………………………………………………………………………………………….. 389

9.6.1. Класс QGraphicsEffect……………………………………………………………………………………………. 390

9.6.2. Тень………………………………………………………………………………………………………………………….. 390

9.6.3. Размытие…………………………………………………………………………………………………………………. 392

9.6.4. Изменение цвета……………………………………………………………………………………………………… 392

9.6.5. Изменение прозрачности……………………………………………………………………………………….. 393

9.7. Обработка событий………………………………………………………………………………………………………….. 394

9.7.1. События клавиатуры……………………………………………………………………………………………… 394

9.7.2. События мыши……………………………………………………………………………………………………….. 395

9.7.3. Обработка перетаскивания и сброса……………………………………………………………………. 399

9.7.4. Фильтрация событий……………………………………………………………………………………………… 401

9.7.5. Обработка изменения состояния объекта……………………………………………………………. 401

Глава 10. Диалоговые окна………………………………………………………………….. 405

10.1. Пользовательские диалоговые окна……………………………………………………………………………… 405

10.2. Класс QDialogButtonBox………………………………………………………………………………………………… 408

10.3. Класс QMessageBox………………………………………………………………………………………………………… 411

10.3.1. Основные методы и сигналы……………………………………………………………………………… 413

10.3.2. Окно для вывода обычного сообщения…………………………………………………………….. 415

10.3.3. Окно запроса подтверждения……………………………………………………………………………. 415

10.3.4. Окно для вывода предупреждающего сообщения…………………………………………… 416

10.3.5. Окно для вывода критического сообщения………………………………………………………. 417

10.3.6. Окно «О программе»…………………………………………………………………………………………… 418

10.3.7. Окно «About Qt»………………………………………………………………………………………………….. 418

10.4. Класс QInputDialog………………………………………………………………………………………………………… 418

10.4.1. Основные методы и сигналы……………………………………………………………………………… 419

10.4.2. Окна для ввода строки……………………………………………………………………………………….. 422

10.4.3. Окно для ввода целого числа…………………………………………………………………………….. 423

10.4.4. Окно для ввода вещественного числа……………………………………………………………….. 424

10.4.5. Окно для выбора пункта из списка……………………………………………………………………. 425

10.5. Класс QFileDialog…………………………………………………………………………………………………………… 426

10.5.1. Основные методы и сигналы……………………………………………………………………………… 426

10.5.2. Окно для выбора каталога…………………………………………………………………………………. 429

10.5.3. Окно для открытия файла………………………………………………………………………………….. 430

10.5.4. Окно для сохранения файла………………………………………………………………………………. 431

10.6. Окно для выбора цвета…………………………………………………………………………………………………… 432

10.7. Окно для выбора шрифта……………………………………………………………………………………………….. 433

10.8. Окно для вывода сообщения об ошибке……………………………………………………………………….. 434

10.9. Окно с индикатором хода процесса……………………………………………………………………………… 435

10.10. Создание многостраничного мастера………………………………………………………………………… 437

10.10.1. Класс QWizard…………………………………………………………………………………………………… 437

10.10.2. Класс QWizardPage………………………………………………………………………………………….. 442

Глава 11. Создание SDI- и MDI-приложений………………………………………… 447

11.1. Создание главного окна приложения……………………………………………………………………………. 447

11.2. Меню………………………………………………………………………………………………………………………………… 454

11.2.1. Класс QMenuBar…………………………………………………………………………………………………. 454

11.2.2. Класс QMenu……………………………………………………………………………………………………….. 455

11.2.3. Контекстное меню………………………………………………………………………………………………. 459

11.2.4. Класс QAction……………………………………………………………………………………………………… 460

11.2.5. Объединение переключателей в группу…………………………………………………………… 464

11.3. Панели инструментов…………………………………………………………………………………………………….. 466

11.3.1. Класс QToolBar…………………………………………………………………………………………………… 466

11.3.2. Класс QToolButton……………………………………………………………………………………………… 469

11.4. Прикрепляемые панели………………………………………………………………………………………………….. 470

11.5. Управление строкой состояния……………………………………………………………………………………… 472

11.6. MDI-приложения…………………………………………………………………………………………………………….. 474

11.6.1. Класс QMdiArea………………………………………………………………………………………………….. 474

11.6.2. Класс QMdiSubWindow………………………………………………………………………………………. 478

11.7. Добавление значка приложения в область уведомлений……………………………………………. 479

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

Приложение. Описание электронного архива………………………………………. 485

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

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

Python с нуля до анализа данных!

Python — это просто. Пошаговое руководство по программированию и анализу данных

Представляем книгу “Python — это просто. Пошаговое руководство по программированию и анализу данных“.

Рассмотрены основы синтаксиса языка Python на примере дистрибутива Anaconda. Показаны приложения IPython, Spyder IDE, Jupyter Notebook. Описан синтаксис переменных, функций, циклов. Подробно изучаются структуры данных в Python: строки, списки, кортежи, множества и словари. Объясняется понятие классов и их применение в объектно-ориентированном программировании. Описаны возможности библиотеки обработки изображений Pillow, библиотеки Tkinter для создания приложений с графическим интерфейсом. Отдельный раздел посвящен обработке ошибок и исключений в программах. Рассматриваются библиотеки NumPy и Pandas, приводятся практические примеры их использования для анализа и обработки данных. Описана библиотека Matplotlib и ее возможности в сфере визуализации данных.

По ходу изучения материала книги всегда держите перед собой открытую среду Jupyter Notebook, т. к. это позволит вам сразу же практиковаться в написании кода и получить уверенное представление об основах языка. Ничто так не стимулирует обучение, как живой результат на собственном компьютере. Все примеры кода, использованные в этой книге, я загрузил в свой репозиторий на GitHub для вашего ознакомления: https://github.com/nilabhnishchhal/Python-Made-Easy.

Эта книга исповедует активный подход к обучению и вдохновляет читателя исследовать и экспериментировать, а не просто впитывать теорию.

• Исследуйте возможности Python с использованием дистрибутива Anaconda
• Узнайте, как установить и использовать Python на своем компьютере
• Создавайте свои переменные, объекты и изучите их синтаксис
• Изучите встроенные типы объектов Python, такие как строки, списки, кортежи, множества и словари
• Научитесь вызывать встроенные функции, а также писать свои собственные
• Организуйте свой код и другие объекты в более крупные компоненты с помощью модулей
• Исследуйте классы — инструмент объектно-ориентированного программирования
• Пишите сложный код, научитесь обрабатывать ошибки и исключения
• Узнайте о массивах NumPy и операциях с ними
• Изучите анализ данных с помощью Pandas
• Погрузитесь в захватывающий мир визуализации с использованием Matplotlib
• Научитесь создавать приложения Python с графическим интерфейсом

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

Книгу можно купить в нашем интернет-магазине.

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

О книге………………………………………………………………………………………………………………………………………… 19

Как получить максимум от этой книги…………………………………………………………………………………….. 19

Структура книги………………………………………………………………………………………………………………………… 20

Об авторе……………………………………………………………………………………………….. 23

Благодарности……………………………………………………………………………………….. 27

Глава 1. Введение в Data Science и основы программирования………………. 29

1.1. Введение в Data Science……………………………………………………………………………………………………… 29

1.1.1. Зачем нам Data Science?……………………………………………………………………………………………….. 30

1.1.2. История Data Science…………………………………………………………………………………………………….. 31

1.1.2.1. Данные в древности…………………………………………………………………………………………….. 31

1.1.2.2. Появление статистики…………………………………………………………………………………………. 32

1.1.2.3. Зарождение современного хранения данных……………………………………………………. 32

1.1.2.4. Появление больших центров обработки данных……………………………………………… 33

1.1.2.5. Появление Интернета………………………………………………………………………………………….. 33

1.1.3. Настоящее и будущее Data Science…………………………………………………………………………….. 34

1.1.4. Чем занимается специалист по Data Science?…………………………………………………………….. 35

1.1.5. Как это делается?………………………………………………………………………………………………………….. 35

1.1.6. Предпосылки для Data Science…………………………………………………………………………………….. 35

1.1.7. Профессии в области Data Science………………………………………………………………………………. 36

1.2. От Data Science к программированию………………………………………………………………………………. 37

1.3. Основы компьютерного программирования…………………………………………………………………….. 38

1.3.1. Что такое программирование?…………………………………………………………………………………….. 38

1.3.2. Компьютерный алгоритм……………………………………………………………………………………………… 39

1.3.2.1. Последовательные операторы……………………………………………………………………………. 40

1.3.2.2. Условные операторы…………………………………………………………………………………………… 41

1.3.2.3. Цикл или итерации………………………………………………………………………………………………. 41

1.3.3. Блок-схемы…………………………………………………………………………………………………………………….. 41

1.3.4. Что такое язык программирования?……………………………………………………………………………. 42

1.3.5. Что такое исходный код?……………………………………………………………………………………………… 44

1.3.6. Как запустить исходный код?……………………………………………………………………………………… 45

1.3.7. Компилятор……………………………………………………………………………………………………………………. 45

1.3.8. Интерпретатор………………………………………………………………………………………………………………. 46

1.3.8.1. Сравнение компилятора и интерпретатора………………………………………………………. 47

1.3.9. Что такое интегрированная среда разработки (IDE)?……………………………………………….. 47

1.3.10. Spyder IDE……………………………………………………………………………………………………………………. 48

1.4. Резюме………………………………………………………………………………………………………………………………….. 49

1.5. Упражнения…………………………………………………………………………………………………………………………. 49

1.5.1. Ответьте на вопросы…………………………………………………………………………………………………….. 49

1.5.2. Правда или ложь…………………………………………………………………………………………………………… 49

1.5.3. Практические задания………………………………………………………………………………………………….. 50

1.5.4. Изучите самостоятельно………………………………………………………………………………………………. 50

Глава 2. Введение в Python…………………………………………………………………….. 51

2.1. Что такое Python?……………………………………………………………………………………………………………….. 51

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

2.1.2. Появление Python………………………………………………………………………………………………………….. 52

2.1.3. Python и другие языки программирования…………………………………………………………………. 53

2.1.4. Философия Python…………………………………………………………………………………………………………. 55

2.2. Преимущества Python по сравнению с другими языками……………………………………………….. 55

2.2.1. Простота………………………………………………………………………………………………………………………… 55

2.2.2. Легкость в изучении………………………………………………………………………………………………………. 55

2.2.3. Свободный и открытый исходный код……………………………………………………………………….. 55

2.2.4. Высокоуровневость………………………………………………………………………………………………………. 56

2.2.5. Портативность………………………………………………………………………………………………………………. 56

2.2.6. Интерпретируемость…………………………………………………………………………………………………….. 56

2.2.7. Интерпретаторы Python……………………………………………………………………………………………….. 56

2.2.7.1. IPython………………………………………………………………………………………………………………….. 57

2.2.7.2. CPython…………………………………………………………………………………………………………………. 57

2.2.7.3. IronPython…………………………………………………………………………………………………………….. 58

2.2.7.4. Jython…………………………………………………………………………………………………………………….. 58

2.2.7.5. PyPy……………………………………………………………………………………………………………………….. 58

2.2.7.6. PythonNet………………………………………………………………………………………………………………. 59

2.2.7.7. Stackless Python……………………………………………………………………………………………………. 59

2.2.8. Объектная ориентированность……………………………………………………………………………………. 59

2.2.9. Расширяемость………………………………………………………………………………………………………………. 60

2.2.10. Встраиваемость…………………………………………………………………………………………………………… 60

2.2.11. Внушительные библиотеки………………………………………………………………………………………… 60

2.2.12. Python для начинающих…………………………………………………………………………………………….. 61

2.3. Версии Python……………………………………………………………………………………………………………………… 62

2.3.1. Python 2………………………………………………………………………………………………………………………….. 62

2.3.2. Python 2.7……………………………………………………………………………………………………………………….. 62

2.3.3. Python 3………………………………………………………………………………………………………………………….. 62

2.3.4. Ключевые отличия версий……………………………………………………………………………………………. 63

2.4. Как установить и использовать Python…………………………………………………………………………….. 63

2.4.1. Дистрибутив Anaconda………………………………………………………………………………………………… 63

2.4.2. Почему именно Anaconda?…………………………………………………………………………………………… 64

2.4.3. Установка Anaconda в Windows………………………………………………………………………………….. 64

2.4.4. Установка Anaconda в MacOS…………………………………………………………………………………….. 68

2.5. Запуск Python через командную строку…………………………………………………………………………… 71

2.6. Приложения Anaconda……………………………………………………………………………………………………….. 73

2.7. Консоль IPython Qt……………………………………………………………………………………………………………… 73

2.8. Spyder IDE……………………………………………………………………………………………………………………………. 75

2.8.1. Компоненты Spyder IDE……………………………………………………………………………………………….. 76

2.8.1.1. Редактор текста……………………………………………………………………………………………………. 76

2.8.1.2. IPython консоль……………………………………………………………………………………………………. 77

2.8.1.3. Обозреватель переменных………………………………………………………………………………….. 77

2.8.1.4. Справка…………………………………………………………………………………………………………………. 79

2.9. Jupyter Notebook………………………………………………………………………………………………………………….. 80

2.9.1. Приложение Jupyter Notebook……………………………………………………………………………………… 80

2.9.2. Основные возможности веб-приложения……………………………………………………………………. 80

2.9.3. Документы Notebook…………………………………………………………………………………………………….. 80

2.9.4. Запуск сервера Notebook……………………………………………………………………………………………… 81

2.9.5. Создание нового документа Notebook………………………………………………………………………… 82

2.9.6. Открытие документа Notebook……………………………………………………………………………………. 82

2.9.7. Интерфейс документа Notebook………………………………………………………………………………….. 82

2.9.8. Структура документа Notebook………………………………………………………………………………….. 83

2.9.9. Ячейки кода…………………………………………………………………………………………………………………… 83

2.9.10. Ячейки Markdown……………………………………………………………………………………………………….. 83

2.9.11. Неформатированные ячейки……………………………………………………………………………………… 84

2.9.12. Рабочий процесс…………………………………………………………………………………………………………. 84

2.9.13. Горячие клавиши………………………………………………………………………………………………………… 84

2.9.14. Построение графиков………………………………………………………………………………………………….. 85

2.9.15. Совместимость с браузерами…………………………………………………………………………………….. 85

2.10. Что лучше использовать?…………………………………………………………………………………………………. 85

2.11. Резюме………………………………………………………………………………………………………………………………… 86

2.12. Упражнения……………………………………………………………………………………………………………………….. 87

2.12.1. Ответьте на вопросы…………………………………………………………………………………………………… 87

2.12.2. Правда или ложь…………………………………………………………………………………………………………. 87

2.12.3. Изучите самостоятельно…………………………………………………………………………………………….. 88

Глава 3. Основы Python…………………………………………………………………………. 89

3.1. Запуск Python………………………………………………………………………………………………………………………. 89

3.1.1. Использование Spyder IDE…………………………………………………………………………………………… 89

3.1.2. Использование Jupyter Notebook…………………………………………………………………………………. 91

3.2. Начнем с «Hello World!»……………………………………………………………………………………………………… 92

3.3. Использование Python как калькулятора…………………………………………………………………………. 93

3.3.1. Числа………………………………………………………………………………………………………………………………. 93

3.3.2. Строки……………………………………………………………………………………………………………………………. 94

3.3.2.1. Конкатенация и повторение……………………………………………………………………………….. 95

3.3.2.2. Индексирование…………………………………………………………………………………………………… 95

3.3.2.3. Срезы…………………………………………………………………………………………………………………….. 96

3.4. Синтаксис кода Python……………………………………………………………………………………………………….. 97

3.4.1. Выражения…………………………………………………………………………………………………………………….. 97

3.4.1.1. Окончание выражений………………………………………………………………………………………… 98

3.4.2. Переменные и присваивание значений……………………………………………………………………….. 99

3.4.3. Имена переменных и ключевые слова………………………………………………………………………… 99

3.4.4. Выполнение выражений…………………………………………………………………………………………….. 100

3.5. Первые шаги в программировании………………………………………………………………………………….. 101

3.5.1. Подробнее о функции print()………………………………………………………………………………………. 102

3.5.2. Форматированный вывод…………………………………………………………………………………………… 104

3.5.3. Простейшая геометрия и print()…………………………………………………………………………………. 104

3.6. Поиск ошибок……………………………………………………………………………………………………………………. 105

3.6.1. Синтаксические ошибки…………………………………………………………………………………………….. 105

3.6.2. Ошибки времени выполнения…………………………………………………………………………………….. 106

3.6.3. Семантические ошибки………………………………………………………………………………………………. 106

3.6.4. Когда никакие средства не помогают……………………………………………………………………….. 107

3.7. Резюме………………………………………………………………………………………………………………………………… 108

3.8. Упражнения……………………………………………………………………………………………………………………….. 108

3.8.1. Ответьте на вопросы…………………………………………………………………………………………………… 108

3.8.2. Правда или ложь…………………………………………………………………………………………………………. 108

3.8.3. Практические задания………………………………………………………………………………………………… 109

3.8.4. Изучите самостоятельно…………………………………………………………………………………………….. 110

Глава 4. Объекты и операторы в Python………………………………………………. 111

4.1. Переменные……………………………………………………………………………………………………………………….. 111

4.1.1. Оператор присваивания……………………………………………………………………………………………… 112

4.1.2. Имена переменных……………………………………………………………………………………………………… 112

4.2. Структура программы……………………………………………………………………………………………………… 112

4.3. Объекты……………………………………………………………………………………………………………………………… 113

4.3.1. Классификация объектов……………………………………………………………………………………………. 113

4.3.2. Преимущества встроенных типов……………………………………………………………………………… 114

4.3.3. Идентификаторы, значения и типы объектов…………………………………………………………… 116

4.3.4. Изменяемые и неизменяемые объекты………………………………………………………………………. 117

4.4. Стандартная иерархия типов………………………………………………………………………………………….. 117

4.4.1. Встроенные константы………………………………………………………………………………………………. 118

4.4.2. Числовые типы…………………………………………………………………………………………………………….. 118

4.4.3. Последовательности…………………………………………………………………………………………………… 119

4.4.3.1. Неизменяемые последовательности………………………………………………………………… 119

4.4.3.2. Изменяемые последовательности…………………………………………………………………….. 121

4.4.4. Множества…………………………………………………………………………………………………………………… 121

4.4.5. Сопоставления…………………………………………………………………………………………………………….. 122

4.4.6. Вызываемые типы……………………………………………………………………………………………………….. 122

4.4.7. Модули………………………………………………………………………………………………………………………… 123

4.5. Операции с объектами в Python………………………………………………………………………………………. 124

4.6. Операторы…………………………………………………………………………………………………………………………. 124

4.6.1. Арифметические операторы………………………………………………………………………………………. 125

4.6.2. Операторы присваивания…………………………………………………………………………………………… 126

4.6.3. Операторы сравнения…………………………………………………………………………………………………. 127

4.6.4. Логические операторы……………………………………………………………………………………………….. 128

4.6.5. Операторы идентификации и вхождения………………………………………………………………….. 128

4.7. Отступы……………………………………………………………………………………………………………………………… 129

4.8. Комментарии в Python……………………………………………………………………………………………………… 130

4.9. Порядок выполнения………………………………………………………………………………………………………… 130

4.9.1. Изменение порядка выполнения………………………………………………………………………………… 131

4.9.2. Ассоциативность…………………………………………………………………………………………………………. 131

4.9.3. Площадь прямоугольника………………………………………………………………………………………….. 132

4.10. Динамическая типизация……………………………………………………………………………………………….. 132

4.11. Строгая типизация………………………………………………………………………………………………………….. 133

4.12. Логическая и физическая строка…………………………………………………………………………………… 133

4.13. Резюме……………………………………………………………………………………………………………………………… 134

4.14. Упражнения…………………………………………………………………………………………………………………….. 134

4.14.1. Ответьте на вопросы…………………………………………………………………………………………………. 134

4.14.2. Правда или ложь……………………………………………………………………………………………………….. 135

4.14.3. Практические задания………………………………………………………………………………………………. 135

4.14.4. Изучите самостоятельно………………………………………………………………………………………….. 136

 

Глава 5. Операторы управления потоком…………………………………………….. 137

5.1. Управление потоком…………………………………………………………………………………………………………. 137

5.2. Операторы if……………………………………………………………………………………………………………………… 137

5.2.1. Простой оператор if……………………………………………………………………………………………………. 137

5.2.2. Оператор if-else…………………………………………………………………………………………………………… 139

5.2.3. Оператор if–elif–else…………………………………………………………………………………………………… 140

5.3. Оператор цикла for…………………………………………………………………………………………………………… 142

5.3.1. Цикл for с блоком else…………………………………………………………………………………………………. 143

5.4. Функция range()…………………………………………………………………………………………………………………. 144

5.5. Цикл while………………………………………………………………………………………………………………………….. 145

5.6. Операторы break и continue…………………………………………………………………………………………….. 146

5.6.1. Оператор break……………………………………………………………………………………………………………. 146

5.6.2. Оператор continue………………………………………………………………………………………………………. 148

5.7. Оператор pass……………………………………………………………………………………………………………………. 149

5.8. Резюме………………………………………………………………………………………………………………………………… 150

5.9. Упражнения……………………………………………………………………………………………………………………….. 150

5.9.1. Ответьте на вопросы…………………………………………………………………………………………………… 150

5.9.2. Правда или ложь…………………………………………………………………………………………………………. 151

5.9.3. Практические задания………………………………………………………………………………………………… 152

Глава 6. Функции………………………………………………………………………………… 153

6.1. Определение функций………………………………………………………………………………………………………. 153

6.2. Типы функций……………………………………………………………………………………………………………………. 153

6.3. Встроенные функции………………………………………………………………………………………………………… 154

6.3.1. Описание некоторых встроенных функций………………………………………………………………. 154

6.4. Пользовательские функции………………………………………………………………………………………………. 156

6.4.1. Зачем создавать функции?…………………………………………………………………………………………. 156

6.4.2. Создание и вызов функций…………………………………………………………………………………………. 157

6.4.3. Входные параметры и аргументы…………………………………………………………………………….. 158

6.4.3.1. Параметры………………………………………………………………………………………………………….. 159

6.4.3.2. Аргументы………………………………………………………………………………………………………….. 160

6.4.3.3. Количество аргументов…………………………………………………………………………………….. 161

6.4.4. Возврат значений из функций……………………………………………………………………………………. 162

6.5. Варианты передачи аргументов……………………………………………………………………………………… 164

6.5.1. Аргументы со значением по умолчанию………………………………………………………………….. 164

6.5.2. Произвольное число аргументов (*args)…………………………………………………………………… 164

6.5.3. Именованные аргументы……………………………………………………………………………………………. 165

6.5.4. Произвольное число именованных аргументов (**kwargs)……………………………………. 166

6.6. Генераторы……………………………………………………………………………………………………………………….. 167

6.6.1. Определение генератора……………………………………………………………………………………………. 167

6.6.2. Пояснение к примеру………………………………………………………………………………………………….. 168

6.7. Резюме………………………………………………………………………………………………………………………………… 168

6.8. Упражнения……………………………………………………………………………………………………………………….. 169

6.8.1. Ответьте на вопросы…………………………………………………………………………………………………… 169

6.8.2. Правда или ложь…………………………………………………………………………………………………………. 169

6.8.3. Практические задания………………………………………………………………………………………………… 169

6.8.4. Изучите самостоятельно…………………………………………………………………………………………….. 170

Глава 7. ПРОЕКТ 1: Рисунки из символов с помощью циклов и функций 171

7.1. Рисунки с помощью символа * (звездочка)…………………………………………………………………….. 171

7.1.1. Прямоугольный треугольник……………………………………………………………………………………… 171

7.1.2. Перевернутый прямоугольный треугольник…………………………………………………………….. 172

7.1.3. Равносторонний треугольник…………………………………………………………………………………….. 174

7.1.4. Прямоугольный треугольник вверх ногами……………………………………………………………… 175

7.1.5. Стрелка вправо……………………………………………………………………………………………………………. 175

7.1.6. Практические задания………………………………………………………………………………………………… 176

7.2. Рисунки с помощью цифр…………………………………………………………………………………………………. 177

7.2.1. Прямоугольный треугольник……………………………………………………………………………………… 177

7.2.2. Прямоугольный треугольник 2………………………………………………………………………………….. 177

7.2.3. Прямоугольный треугольник вверх ногами……………………………………………………………… 178

7.2.4. Треугольник из обратных чисел………………………………………………………………………………… 179

7.2.5. Треугольник из квадратов обратных чисел……………………………………………………………… 179

7.2.6. Ромб……………………………………………………………………………………………………………………………… 179

7.2.7. Ромб с другим направлением чисел………………………………………………………………………….. 181

7.2.8. Стрелка влево……………………………………………………………………………………………………………… 182

7.2.9. Практические задания………………………………………………………………………………………………… 183

7.3. Резюме………………………………………………………………………………………………………………………………… 184

Глава 8. Структуры данных и последовательности……………………………… 185

8.1. Строки………………………………………………………………………………………………………………………………… 185

8.1.1. Строковые операции…………………………………………………………………………………………………… 186

8.1.2. Форматирование…………………………………………………………………………………………………………. 187

8.1.3. Методы split() и join()…………………………………………………………………………………………………. 188

8.2. Списки………………………………………………………………………………………………………………………………… 189

8.2.1. Индексы и срезы………………………………………………………………………………………………………….. 191

8.2.2. Методы списков………………………………………………………………………………………………………….. 192

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

8.2.4. Оператор del………………………………………………………………………………………………………………… 194

8.3. Кортежи……………………………………………………………………………………………………………………………… 195

8.3.1. Методы кортежей……………………………………………………………………………………………………….. 196

8.4. Множества…………………………………………………………………………………………………………………………. 196

8.4.1. Операции над множествами………………………………………………………………………………………. 197

8.4.2. Методы множеств……………………………………………………………………………………………………….. 198

8.5. Словари……………………………………………………………………………………………………………………………… 199

8.5.1. Методы словарей………………………………………………………………………………………………………… 200

8.6. Перебор последовательностей в цикле…………………………………………………………………………… 201

8.7. Резюме………………………………………………………………………………………………………………………………… 202

8.8. Упражнения……………………………………………………………………………………………………………………….. 202

8.8.1. Ответьте на вопросы…………………………………………………………………………………………………… 202

8.8.2. Правда или ложь…………………………………………………………………………………………………………. 203

8.8.3. Практические задания………………………………………………………………………………………………… 203

8.8.4. Изучите самостоятельно…………………………………………………………………………………………….. 204

Глава 9. Ввод-вывод данных и работа с файлами………………………………… 205

9.1. Ввод данных……………………………………………………………………………………………………………………… 205

9.2. Форматированный вывод данных…………………………………………………………………………………… 207

9.2.1. Форматированные строки………………………………………………………………………………………….. 207

9.2.2. Строковый метод format()…………………………………………………………………………………………… 208

9.2.3. Форматирование строк вручную………………………………………………………………………………. 210

9.2.4. Функции str() и repr()…………………………………………………………………………………………………… 211

9.2.5. Старое форматирование строки………………………………………………………………………………… 212

9.3. Чтение и запись файлов……………………………………………………………………………………………………. 212

9.3.1. Методы файловых объектов………………………………………………………………………………………. 213

9.3.2. Создание файла и запись в него………………………………………………………………………………… 214

9.3.3. Открытие файла и чтение его содержимого……………………………………………………………… 215

9.3.4. Построчное чтение……………………………………………………………………………………………………… 215

9.3.5. Чтение и запись нетекстовых файлов………………………………………………………………………… 216

9.4. Резюме………………………………………………………………………………………………………………………………… 216

9.5. Упражнения……………………………………………………………………………………………………………………….. 216

9.5.1. Ответьте на вопросы…………………………………………………………………………………………………… 216

9.5.2. Правда или ложь…………………………………………………………………………………………………………. 217

9.5.3. Практические задания………………………………………………………………………………………………… 217

9.5.4. Изучите самостоятельно…………………………………………………………………………………………….. 218

Глава 10. ПРОЕКТ 2: Автоматизация обработки множества изображений 219

10.1. Изменение типа файла (расширения)……………………………………………………………………………. 221

10.2. Изменение размеров фотографий………………………………………………………………………………….. 223

10.3. Преобразование изображений в черно-белые……………………………………………………………… 223

10.4. Поворот изображений…………………………………………………………………………………………………….. 224

10.5. Изменение разрешения изображения……………………………………………………………………………. 225

10.6. Резюме……………………………………………………………………………………………………………………………… 226

10.7. Изучите самостоятельно………………………………………………………………………………………………… 226

Глава 11. Классы………………………………………………………………………………….. 227

11.1. Основные понятия…………………………………………………………………………………………………………… 227

11.1.1. Введение в объектно-ориентированное программирование………………………………… 227

11.1.2. Введение в понятие класса………………………………………………………………………………………. 229

11.2. Объект класса………………………………………………………………………………………………………………….. 229

11.2.1. Метод __init__………………………………………………………………………………………………………….. 230

11.3. Объекты экземпляров……………………………………………………………………………………………………… 231

11.3.1. Создание экземпляров класса………………………………………………………………………………….. 231

11.3.2. Как это работает………………………………………………………………………………………………………. 232

11.3.3. Пример использования экземпляров класса…………………………………………………………… 232

11.4. Объекты методов…………………………………………………………………………………………………………….. 234

11.5. Наследование………………………………………………………………………………………………………………….. 235

11.6. Множественное наследование………………………………………………………………………………………. 236

11.6.1. Переопределение методов……………………………………………………………………………………….. 239

11.7. Полиморфизм…………………………………………………………………………………………………………………… 241

11.8. Абстракция и инкапсуляция…………………………………………………………………………………………… 241

11.9. Как контролировать доступ…………………………………………………………………………………………… 242

11.9.1. Приватные переменные……………………………………………………………………………………………. 242

11.10. Резюме……………………………………………………………………………………………………………………………. 243

11.11. Упражнения…………………………………………………………………………………………………………………… 243

11.11.1. Ответьте на вопросы………………………………………………………………………………………………. 243

11.11.2. Правда или ложь…………………………………………………………………………………………………….. 243

11.11.3. Практические задания……………………………………………………………………………………………. 244

11.11.4. Изучите самостоятельно………………………………………………………………………………………… 245

Глава 12. Ошибки и обработка исключений………………………………………… 247

12.1. Ошибки и исключения…………………………………………………………………………………………………….. 247

12.1.1. Синтаксические ошибки…………………………………………………………………………………………… 247

12.1.2. Исключения……………………………………………………………………………………………………………….. 248

12.2. Вызов исключений………………………………………………………………………………………………………….. 249

12.2.1. Оператор raise…………………………………………………………………………………………………………… 249

12.2.2. Исключение AssertionError………………………………………………………………………………………. 250

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

12.3.1. Операторы try и except……………………………………………………………………………………………… 251

12.3.2. Блок else…………………………………………………………………………………………………………………….. 252

12.4. Завершающий блок………………………………………………………………………………………………………… 253

12.5. Резюме……………………………………………………………………………………………………………………………… 255

12.6. Упражнения…………………………………………………………………………………………………………………….. 255

12.6.1. Ответьте на вопросы…………………………………………………………………………………………………. 255

12.6.2. Правда или ложь……………………………………………………………………………………………………….. 255

12.6.3. Практические задания………………………………………………………………………………………………. 256

Глава 13. Модули и пакеты………………………………………………………………….. 257

13.1. Модули…………………………………………………………………………………………………………………………….. 257

13.1.1. Определение модуля…………………………………………………………………………………………………. 257

13.1.2. Подробнее о модулях……………………………………………………………………………………………….. 259

13.2. Импорт модулей……………………………………………………………………………………………………………… 259

13.2.1. Импорт модулей из других модулей……………………………………………………………………….. 259

13.2.2. Импорт имен из модуля напрямую………………………………………………………………………….. 260

13.2.3. Импорт всех имен из модуля……………………………………………………………………………………. 260

13.2.4. Импорт модуля под другим именем………………………………………………………………………… 260

13.3. Стандартные модули……………………………………………………………………………………………………… 261

13.4. Функция dir()……………………………………………………………………………………………………………………. 262

13.5. Пакеты……………………………………………………………………………………………………………………………… 263

13.5.1. Пример пакета sound……………………………………………………………………………………………….. 263

13.5.2. Вызов пакета для дальнейшего использования……………………………………………………… 265

13.5.3. Популярные пакеты в Python…………………………………………………………………………………… 266

13.5.3.1. Сбор данных…………………………………………………………………………………………………….. 266

13.5.3.2. Обработка данных и моделирование…………………………………………………………….. 266

13.5.3.3. Визуализация данных……………………………………………………………………………………… 268

13.6. Резюме……………………………………………………………………………………………………………………………… 269

13.7. Упражнения…………………………………………………………………………………………………………………….. 269

13.7.1. Ответьте на вопросы…………………………………………………………………………………………………. 269

13.7.2. Правда или ложь……………………………………………………………………………………………………….. 269

13.7.3. Изучите самостоятельно………………………………………………………………………………………….. 270

Глава 14. ПРОЕКТ 3: Конвертер валют с графическим интерфейсом…… 271

14.1. Введение в Tkinter…………………………………………………………………………………………………………… 271

14.2. Основные шаги в Tkinter…………………………………………………………………………………………………. 273

14.3. Окно интерфейса конвертера валют……………………………………………………………………………… 274

14.3.1. Использование метода pack()…………………………………………………………………………………… 275

14.3.2. Использование метода grid()……………………………………………………………………………………. 276

14.4. Код для конвертации валют…………………………………………………………………………………………… 277

14.5. Итоговое приложение…………………………………………………………………………………………………….. 279

14.6. Резюме……………………………………………………………………………………………………………………………… 282

14.7. Изучите самостоятельно………………………………………………………………………………………………… 282

Глава 15. Библиотека NumPy……………………………………………………………….. 283

15.1. Введение в NumPy…………………………………………………………………………………………………………… 283

15.1.1. Установка NumPy……………………………………………………………………………………………………… 284

15.1.2. Импорт NumPy………………………………………………………………………………………………………….. 284

15.1.3. Разница между списком Python и массивом NumPy………………………………………………. 284

15.1.4. Зачем нам NumPy?……………………………………………………………………………………………………. 285

15.2. Массив NumPy………………………………………………………………………………………………………………… 286

15.2.1. Размерность массива………………………………………………………………………………………………… 286

15.2.2. Другие атрибуты массива………………………………………………………………………………………… 287

15.3. Создание массива…………………………………………………………………………………………………………… 287

15.3.1. Массивы из нулей, единиц и случайных чисел……………………………………………………… 289

15.3.2. Массив из диапазона значений……………………………………………………………………………….. 290

15.3.3. Указание типа данных массива………………………………………………………………………………. 291

15.3.4. Вывод массивов………………………………………………………………………………………………………… 291

15.4. Сортировка, добавление и удаление элементов массива…………………………………………… 292

15.4.1. Сортировка………………………………………………………………………………………………………………… 292

15.4.2. Сложение (конкатенация)………………………………………………………………………………………… 292

15.4.3. Удаление……………………………………………………………………………………………………………………. 293

15.5. Форма и размер массива………………………………………………………………………………………………… 293

15.6. Изменение формы……………………………………………………………………………………………………………. 294

15.7. Добавление оси……………………………………………………………………………………………………………….. 295

15.8. Индексирование и срезы………………………………………………………………………………………………… 296

15.9. Создание массива из существующих данных……………………………………………………………… 298

15.10. Копии и представления массивов……………………………………………………………………………….. 299

15.10.1. Присваивание без копии…………………………………………………………………………………………. 300

15.10.2. Представление или неглубокая копия…………………………………………………………………… 300

15.10.3. Глубокая копия……………………………………………………………………………………………………….. 301

15.11. Массивы NumPy в реальной жизни…………………………………………………………………………….. 301

15.11.1. Электронные таблицы Excel………………………………………………………………………………….. 302

15.11.2. Аудиофайлы и временные ряды…………………………………………………………………………….. 302

15.11.3. Изображения……………………………………………………………………………………………………………. 303

15.12. Резюме……………………………………………………………………………………………………………………………. 304

Глава 16. Операции в NumPy……………………………………………………………….. 305

16.1. Основные операции над массивами……………………………………………………………………………… 305

16.1.1. Универсальные функции………………………………………………………………………………………….. 307

16.2. Транслирование……………………………………………………………………………………………………………… 308

16.3. Функции агрегирования…………………………………………………………………………………………………. 308

16.4. Двумерные массивы……………………………………………………………………………………………………….. 309

16.5. Уникальные элементы массива……………………………………………………………………………………… 311

16.6. Транспонирование и изменение формы матрицы………………………………………………………… 313

16.7. Обратный порядок элементов массива…………………………………………………………………………. 314

16.8. Сжатие многомерного массива в одномерный…………………………………………………………….. 316

16.9. Работа с математическими формулами………………………………………………………………………… 317

16.10. Сохранение массива в файл и чтение из файла…………………………………………………………. 318

16.11. Резюме……………………………………………………………………………………………………………………………. 319

Глава 17. Библиотека Pandas……………………………………………………………….. 321

17.1. Введение в Pandas…………………………………………………………………………………………………………… 321

17.1.1. Зачем нам Pandas?……………………………………………………………………………………………………. 321

17.1.2. Установка и импорт Pandas……………………………………………………………………………………… 322

17.1.3. Обработка данных в Pandas…………………………………………………………………………………….. 323

17.2. Тип данных DataFrame…………………………………………………………………………………………………… 323

17.2.1. Создание DataFrame…………………………………………………………………………………………………. 323

17.2.2. Индексы в DataFrame……………………………………………………………………………………………….. 324

17.2.3. Series в DataFrame…………………………………………………………………………………………………….. 324

17.3. Столбцы DataFrame……………………………………………………………………………………………………….. 325

17.3.1. Добавление столбца…………………………………………………………………………………………………. 325

17.3.2. Удаление столбца…………………………………………………………………………………………………….. 326

17.3.3. Изменение значений в столбце………………………………………………………………………………… 326

17.4. Строки DataFrame…………………………………………………………………………………………………………… 326

17.4.1. Выбор строки…………………………………………………………………………………………………………….. 326

17.4.2. Срез строки (выбор нескольких строк)……………………………………………………………………. 327

17.5. Операции с DataFrame……………………………………………………………………………………………………. 327

17.6. Чтение данных из файла………………………………………………………………………………………………… 328

17.6.1. Пояснение к данным из примера……………………………………………………………………………… 329

17.7. Запись данных в файл…………………………………………………………………………………………………….. 330

17.8. Проверка DataFrame………………………………………………………………………………………………………. 330

17.8.1. Атрибут dtypes…………………………………………………………………………………………………………… 330

17.8.2. Метод info()……………………………………………………………………………………………………………….. 331

17.8.3. Метод head()……………………………………………………………………………………………………………… 332

17.8.4. Метод tail()………………………………………………………………………………………………………………… 332

17.9. Выбор части DataFrame…………………………………………………………………………………………………. 333

17.9.1. Выбор столбцов………………………………………………………………………………………………………… 333

17.9.2. Выбор строк (фильтрация)……………………………………………………………………………………….. 334

17.9.3. Выбор строк и столбцов…………………………………………………………………………………………… 335

17.10. Резюме……………………………………………………………………………………………………………………………. 337

Глава 18. Pandas в действии…………………………………………………………………. 339

18.1. Добавление столбца……………………………………………………………………………………………………….. 339

18.2. Удаление столбцов…………………………………………………………………………………………………………. 340

18.3. Переименование столбцов……………………………………………………………………………………………… 340

18.4. Сводная статистика………………………………………………………………………………………………………… 341

18.5. Группировка по категориям…………………………………………………………………………………………… 342

18.6. Сортировка строк……………………………………………………………………………………………………………. 345

18.7. Объединение данных из нескольких таблиц………………………………………………………………… 345

18.7.1. Объединение объектов……………………………………………………………………………………………… 346

18.7.2. Объединение с использованием общего идентификатора…………………………………….. 347

18.8. Резюме……………………………………………………………………………………………………………………………… 350

Глава 19. Визуализация в Python………………………………………………………….. 351

19.1. Визуализация данных…………………………………………………………………………………………………….. 351

19.1.1. Важность визуализации данных……………………………………………………………………………… 351

19.1.2. Основы визуализации……………………………………………………………………………………………….. 351

19.1.3. Простой линейный график в Pandas………………………………………………………………………… 352

19.1.4. Базовая диаграмма рассеяния…………………………………………………………………………………. 354

19.1.5. Другие виды графиков………………………………………………………………………………………………. 355

19.1.6. Диаграмма размаха………………………………………………………………………………………………….. 357

19.1.7. Несколько графиков………………………………………………………………………………………………….. 358

19.1.8. Сохранение графика…………………………………………………………………………………………………. 358

19.2. Библиотеки для визуализации данных…………………………………………………………………………. 359

19.2.1. Matplotlib……………………………………………………………………………………………………………………. 359

19.2.2. Seaborn……………………………………………………………………………………………………………………….. 360

19.2.3. ggplot…………………………………………………………………………………………………………………………… 361

19.2.4. Bokeh………………………………………………………………………………………………………………………….. 362

19.2.5. Folium…………………………………………………………………………………………………………………………. 362

19.2.6. Gleam………………………………………………………………………………………………………………………….. 363

19.3. Резюме……………………………………………………………………………………………………………………………… 364

Глава 20. Визуализация с помощью Matplotlib Pyplot…………………………… 365

20.1. Введение и историческая справка…………………………………………………………………………………. 365

20.2. Основные объкты Matplotlib………………………………………………………………………………………….. 366

20.2.1. Иерархия объектов Matplotlib………………………………………………………………………………….. 368

20.2.2. Типы входных данных для графиков………………………………………………………………………. 369

20.3. Элементы рисунка………………………………………………………………………………………………………….. 369

20.3.1. Рисунок (Figure)………………………………………………………………………………………………………… 370

20.3.2. Графики (Axes)…………………………………………………………………………………………………………… 371

20.3.3. Оси (Axis)……………………………………………………………………………………………………………………. 371

20.3.4. Объекты Artist……………………………………………………………………………………………………………. 371

20.4. Два способа использования Matplotlib…………………………………………………………………………. 371

20.4.1. Объектно-ориентированный интерфейс…………………………………………………………………. 371

20.4.2. Интерфейс Pyplot………………………………………………………………………………………………………. 372

20.4.3. Так какой же способ лучше?……………………………………………………………………………………. 373

20.5. Построение схожих графиков с помощью функций…………………………………………………….. 373

20.6. Модуль Pyplot…………………………………………………………………………………………………………………. 375

20.7. Функция plot()………………………………………………………………………………………………………………….. 376

20.7.1. Построение индексированных данных…………………………………………………………………… 377

20.7.2. Построение нескольких наборов данных……………………………………………………………….. 377

20.7.3. Форматирование стиля…………………………………………………………………………………………….. 377

20.8. Параметры функции plot()……………………………………………………………………………………………… 379

20.8.1. Параметры х, у…………………………………………………………………………………………………………… 379

20.8.2. Строка формата (fmt)………………………………………………………………………………………………… 379

20.8.2.1. Маркеры…………………………………………………………………………………………………………… 379

20.8.2.2. Стили линий……………………………………………………………………………………………………… 380

20.8.2.3. Цвета…………………………………………………………………………………………………………………. 380

20.8.3. Данные (data)…………………………………………………………………………………………………………….. 380

20.9. Возвращаемый объект plot()………………………………………………………………………………………….. 381

20.10. Именованные аргументы (**kwargs)…………………………………………………………………………… 381

20.11. Построение графиков по меткам…………………………………………………………………………………. 382

20.12. Построение графиков с категориальными переменными………………………………………….. 383

20.13. Изменение свойств линии…………………………………………………………………………………………….. 383

20.14. Работа с несколькими рисунками и графиками…………………………………………………………. 384

20.15. Вставка текста на график…………………………………………………………………………………………….. 386

20.16. Использование математических выражений в тексте……………………………………………….. 387

20.16.1. Аннотирование текста……………………………………………………………………………………………. 387

20.17. Логарифмические и другие нелинейные оси………………………………………………………………. 388

20.18. Резюме……………………………………………………………………………………………………………………………. 390

Глава 21. Визуализация с помощью объектно-ориентированного интерфейса в Matplotlib         391

21.1. Сравнение объектно-ориентированного API и Pyplot API………………………………………….. 391

21.2. Данные для работы………………………………………………………………………………………………………… 392

21.3. Построение графика по умолчанию……………………………………………………………………………… 392

21.4. Управление стилями……………………………………………………………………………………………………….. 393

21.5. Разные настройки графика…………………………………………………………………………………………….. 394

21.6. Добавление элементов на график………………………………………………………………………………….. 397

21.7. Форматирование текста на графике……………………………………………………………………………… 398

21.7.1. Базовые команды для работы с текстом…………………………………………………………………. 399

21.8. Сохранение графика в файл…………………………………………………………………………………………… 401

21.9. Примеры графиков………………………………………………………………………………………………………….. 402

21.9.1. Гистограмма……………………………………………………………………………………………………………… 402

21.9.2. Кривые и ломаные линии…………………………………………………………………………………………. 403

21.9.3. Трехмерные графики………………………………………………………………………………………………… 404

21.9.4. Круговая диаграмма…………………………………………………………………………………………………. 405

21.9.5. Пример построения нескольких графиков………………………………………………………………. 407

21.10. Резюме……………………………………………………………………………………………………………………………. 407

Ответы на вопросы «Правда или ложь»……………………………………………….. 409

Библиография………………………………………………………………………………………. 411

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

Приглашаем на Книжный Фестиваль! (c 3 по 6 июня)

Книжный фестиваль Красная площадь 3 – 6 июня 2022

С 3 по 6 июня в Москве на Красной площади пройдет 8-й книжный фестиваль. Приглашаем вас посетить наш стенд в секторе детской литературы. Мы привезем на фестиваль наши лучшие сказки, а также самые новые и популярные книги для детей, которые вы сможете приобрести по очень выгодным ценам. Вход свободный!

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

Майские допечатки 2022 уже в продаже!

Допечатки книг в мае 2022

Вчера получили из типографии допечатки популярных книг. Кто спрашивал – покупайте.

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

Поросенок Нюка. Однажды зимой

Поросенок Нюка. Однажды зимой

Представляем новую книгу Дмитрия Дмитриева из серии “Поросёнок Нуюка” – “Поросенок Нюка. Однажды зимой“.

В Стране Придуманных Историй наступила зима. Одним восхитительным утром поросенок Нюка вспомнил, что хотел покататься на лыжах с друзьями. Он так боялся опоздать, что решил не надевать теплую курточку. И конечно, Нюка потом болел — целых пятьдесят девять минут. Но верные друзья Гусь Гусич и Бернар сразу же пришли на помощь.  А болеть Нюке зимой никак нельзя, ведь кругом столько интересного: снежные горки, ледяной каток, симпатичные снеговики и волшебные сосульки, которые так и хочется кому-нибудь подарить. Зимняя пора — отличное время для новых приключений!

На счету Дмитрия Дмитриева публикации в журналах и альманахах, более десятка изданных книг для детей, сценарии к фильмам и передачам, таким как «Спокойной ночи, малыши!», «Шишкин лес», «Сказки и истории». Его новая серия книг про поросёнка Нюку проиллюстрирована членом Союза художников и финалистом всероссийского конкурса «Новая детская книга» Павлом Клементьевым.

Книгу можно купить в нашем интернет-магазине.

 

Об авторе

Дмитрий Дмитриев

Дмитрий Дмитриев имеет около  двухсот публикаций в журналах и альманахах, таких как «Тошка», «Кукумбер», «Шишкин лес», «Доброе слово». А также целый ряд книг для детей в том числе  «Волшебное лукошко», «Свободный город», «Таинственный маяк», «Хитрые сказки», «Волшебная скрипка» и др. Им написана пьеса «Потерянный башмак», сценарии к фильму «Федька!», передачам «Спокойной ночи, малыши!», «Шишкин лес», «Сказки и истории». На счету автора победа в конкурсе Рождественских пьес (2003г. ) и диплом международного православного фестиваля «Александр Невский».

О художнике

Клементьев Павел

Молодой художник из Ульяновска Павел Клементьев создает восхитительные иллюстрации со славянской этнической ноткой. Помимо художественных проектов и работы с иллюстрациями для детских книг, он работает в театре, занимаясь графическим дизайном. Создавать книжные иллюстрации Павел предпочитает по старинке — на бумаге — используя и акрил, и карандаши, и ручки.  Художник рассказывает, что своих героев он создаёт из множества деталей, списанных с реальных людей. Вдохновить на нового персонажа могут и мальчишка с красноватыми ушами, и девочка с ямочками на щеках, и, конечно, близкие люди.

2886_Нюка+ГГ+Бернард2

В тихом и красивом местечке, где-то на северо-западе Страны Придуманных Историй живёт поросёнок, которого все зовут Нюка. Почему его так зовут? Да потому, что этот непоседливый малыш любит всюду совать свой розовый пятачок, приговаривая: «Ню-ка, ню-ка посмотрим. Ню-ка, ню-ка поглядим». Что из этого получается, лучше всего знают Нюкины друзья — сенбернар Бернар и Гусь Гусич. Впрочем, и вы можете узнать, если прочтёте эту книгу.

днажды ночью в Стране Придуманных Историй выпал самый настоящий снег. А это значит, что поросёнка Нюку ждут новые незабываемые приключения. Лихо спуститься с горы на лыжах, слепить симпатичного снеговика или покрасоваться в ярком зимнем костюмчике — неугомонному поросёнку все по душе, если рядом его друзья Гусь Гусич и Бернар.

И летом и зимой Нюка готов вставать чуть свет, чтобы не пропустить самое интересное, так что историй про это самое интересное набралось на несколько книжек.

 

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

Вышла книга “Панда Бамбу на прогулке”

Панда Бамбу на прогулке

Представляем новую книгу из серии “Панда Бамбу” – “Панда Бамбу на прогулке“.

Панда Бамбу впервые отправилась на прогулку без мамы. Но почему-то кругом все были грустные и недовольные.  Бамбу очень не понравилось такая прогулка. А вот с  мамой пандочке гулять очень даже понравилось! Кто бы мог подумать, что вокруг столько счастливых и весёлых прохожих! Даже удивительно, как они все поместились в маленькую книжку!

Весёлые истории про панду-непоседу хорошо читать всей семьёй, а потом вместе выполнять интересные и несложные задания в конце книги. Автор Анастасия Гундер — мама троих детей, и ей хорошо известно, как важно не только чем-то занять малыша, но и найти тему для общей беседы. Панда Бамбу всегда рада помочь и взрослым, и детям!

Книгу можно купить в нашем интернет-магазине.

 

О художнике

Татьяна Никитина

Татьяна Никитина — известный художник, ученица классика книжной иллюстрации Бориса Диодорова, обладатель дипломов конкурса «Образ книги». Её книги участвовали в престижных отечественных и зарубежных выставках в Болонье, Тегеране, Франкфурте-на-Майне.

Об авторе

Гундер-Анастасия

Анастасия Гундер — мама трёх малышей, начинающий огородник и увлеченный коллекционер детских книг. Кроме этого она победитель Международного литературного «Гайдаровского конкурса», финалист V Международного конкурса на лучшее произведение для детей «Корнейчуковская премия» и состоит в тайном обществе детских писателей «Мыхухоль».

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

Книжный салон 2022 на Дворцовой площади (c 19 по 22 мая)

Книжный салон на Дворцовой 2022

Главный книжный праздник нашего города во второй раз пройдет на Дворцовой площади и в здании Главного штаба Государственного Эрмитажа. Выставка работает с 11.00 до 20.00.

В 2022 году книжную экспозицию переместят из здания Главного штаба Эрмитажа в четыре специально возведенных павильона. Их расположат недалеко от Дворцового проезда. В каждом из павильонов Книжного салона оборудуют лекционные залы. Ждем вас в павильоне “С”  номер стенда 63C.

Книжный салон на Дворцовой 2022

20 мая в 13.00 в лектории “В” состоится встреча с писателем Валентином Холмогоровым, автором книги “Термоядерный контент. Практическое руководство по созданию текстов для SMM“. Автор приведет примеры и даст практические рекомендации по написанию, редактуре и публикации эффективных постов в социальных сетях.

20 мая с 18.00 – 19.00 в лектории “F” состоится встреча с популярным журналистом и историком Львом Яковлевичем Лурье и презентация его новой книги “Поздние ленинградцы. От застоя  до перестройки”.