
В 12 уроках показаны основы программирования и базовые конструкции языка Python. Изложены принципы различных стилей программирования. Даны понятия ввода-вывода, переменных, условий, потока чисел, циклов и списков, массивов, функций и рекурсий. Рассмотрены особенности структурного, объектно-ориентированного и функционального программирования. В каждой главе предложены практические задачи и дано их пошаговое решение с подробным описанием алгоритма.
Для начинающих программистов
Основы программирования и базовые конструкции языка Python.
Python используется как в коммерческих проектах, так и для обучения новичков программированию. Кроме того, он наиболее удобен для сдачи ЕГЭ по информатике. На практических примерах, подробно рассмотренных в отдельных уроках, читатель изучит основные конструкции Python, освоит базовые приемы и стили программирования. Решение каждой задачи приводится в книге пошагово — так, как разработчики пишут программы в реальности. Подробные разборы задач и описания алгоритмов основаны на практических занятиях автора со своими учениками. С помощью этой книги читатель не только изучит язык Python, но и научится программировать, что, как показывает практика, совсем не одно и то же.
- Изучите основные языковые конструкции языка Pyhon
- Освойте программирование в ходе 12 наглядных уроков
- Научитесь понимать и писать код в различных стилях программирования
- Прокачайте алгоритмическое мышление
Введение………………………………………………………………………………………………….. 5
Как обучают языкам программирования?………………………………………………………………………………… 5
И вот появился язык Python…………………………………………………………………………………………………………. 7
Структура книги…………………………………………………………………………………………………………………………… 7
Благодарности……………………………………………………………………………………………………………………………… 8
Об авторе………………………………………………………………………………………………………………………………………. 9
Урок 1. Ввод/вывод, переменные, условия……………………………………………… 10
1.1. Привет, мир!…………………………………………………………………………………………………………………………. 10
1.2. Как тебя зовут?……………………………………………………………………………………………………………………. 13
1.3. Чему равно 12 + 34?……………………………………………………………………………………………………………. 15
1.4. Линейное уравнение…………………………………………………………………………………………………………… 18
1.5. Тип треугольника………………………………………………………………………………………………………………… 26
1.6. Стакан чая и кружка кофе………………………………………………………………………………………………….. 29
Урок 2. Поток чисел, циклы и списки……………………………………………………. 34
2.1. Поток чисел, рекуррентные формулы……………………………………………………………………………….. 34
2.2. Поток чисел, списки……………………………………………………………………………………………………………. 40
2.3. Векторы: длина, сумма, скалярное произведение……………………………………………………………. 46
Урок 3. Флаги. Структурное программирование и стиль Python…………….. 51
3.1. Эпидемия на корабле………………………………………………………………………………………………………….. 51
3.2. Является ли слово палиндромом?……………………………………………………………………………………… 55
3.3. Поиск и замена подстроки в строке…………………………………………………………………………………… 59
3.4. Сравнение чисел между собой. Множества……………………………………………………………………… 62
Урок 4. Словари, рекуррентный индекс в списке…………………………………… 76
4.1. Палиндром путем перестановки букв……………………………………………………………………………….. 76
4.2. Подстановки………………………………………………………………………………………………………………………… 83
Урок 5. Двумерные списки…………………………………………………………………….. 88
5.1. Сложение, транспонирование и умножение матриц……………………………………………………….. 88
5.2. Магический квадрат…………………………………………………………………………………………………………… 98
Итоги уроков 1–5……………………………………………………………………………………………………………………… 105
Урок 6. Декомпозиция программы в функции……………………………………… 106
6.1. Математические формулы как функции…………………………………………………………………………. 106
6.2. Функция факториал с циклом………………………………………………………………………………………….. 108
6.3. Библиотека формул комбинаторики……………………………………………………………………………….. 110
6.4. Декомпозиция магического квадрата в функции……………………………………………………………. 114
Урок 7. Рекурсии………………………………………………………………………………….. 117
7.1. Рекурсивный факториал…………………………………………………………………………………………………… 117
7.2. Числа Фибоначчи без списка, списком, с рекурсией……………………………………………………… 119
7.3. Быстрое возведение в степень………………………………………………………………………………………….. 125
7.4. Мемоизация чисел Фибоначчи………………………………………………………………………………………… 128
7.5. Генерация слов и перестановок………………………………………………………………………………………. 132
Урок 8. Динамика по подотрезкам……………………………………………………….. 139
8.1. Палиндром максимальной длины вычеркиванием букв……………………………………………….. 139
8.2. Максимальный квадрат в матрице………………………………………………………………………………….. 155
Урок 9. Функциональное программирование………………………………………. 163
9.1. Сумма факториалов в функциональном стиле………………………………………………………………. 163
9.2. Стандартные функционалы Python………………………………………………………………………………… 170
9.3. Стандартные функционалы для «Эпидемии на корабле»…………………………………………….. 173
9.4. Стандартные функционалы Python для суммы факториалов………………………………………. 175
9.5. Частичное применение функции на примере степени……………………………………………………. 178
9.6. Универсальный мемоизатор…………………………………………………………………………………………….. 184
9.7. Декораторы……………………………………………………………………………………………………………………….. 191
9.8. Генераторы……………………………………………………………………………………………………………………….. 199
Итоги уроков 6–9……………………………………………………………………………………………………………………… 202
Урок 10. Объектно-ориентированное программирование
предметной области «Геометрия»…………………………………………………………. 204
10.1. Класс «точка»………………………………………………………………………………………………………………….. 204
10.2. Предметная область «Геометрия»…………………………………………………………………………………. 211
10.3. Геометрическая фигура «многоугольник»……………………………………………………………………. 222
10.4. Составные фигуры………………………………………………………………………………………………………….. 227
Урок 11. Матрица в объектно-ориентированном стиле………………………… 231
11.1. Конструктор, индексатор………………………………………………………………………………………………. 231
11.2. Транспонирование, сложение, умножение…………………………………………………………………… 233
11.3. Определитель, обратная матрица, возведение в степень……………………………………………. 235
Урок 12. Программирование сложных коллекций……………………………….. 246
12.1. Функторы…………………………………………………………………………………………………………………………. 246
12.2. Коллекция «кольцо» и задача Иосифа Флавия…………………………………………………………….. 253
12.3. Мемоизация максимального квадрата матрицы в словаре………………………………………… 260
Итоги уроков 10–12…………………………………………………………………………………………………………………. 268
Заключение………………………………………………………………………………………….. 270
Предметный указатель…………………………………………………………………………. 271

Добряк Павел Вадимович — кандидат технических наук, преподаватель Уральского федерального университета. Проводит занятия по различным языкам программирования, базам данных, искусственному интеллекту и проектированию информационных систем. Репетитор по математике и информатике.
-
Python. 12 уроков для начинающих
688 ₽
585 ₽