Предисловие 1
Прежде всего управляющие структуры и только потом классы 1
Краткий обзор глав 1
Организация учебного материала 4
Структурные элементы и условные обозначения книги 5
Дополнительные материалы 6
Электронный архив 7
Об авторе 7
Комментарий переводчика 7
Глава 1. Введение в компьютеры и программирование
13
1.1 Введение 13
1.2 Аппаратное и программное обеспечение 14
1.3 Как компьютеры хранят данные 20
1.4 Как программа работает 24
1.5 Использование языка Python 32
Вопросы для повторения 36
Задачи 40
Глава 2. Ввод, обработка и вывод
43
2.1 Проектирование программы 43
2.2 Ввод, обработка и вывод 48
2.3 Вывод данных на экран при помощи функции print 48
2.4 Комментарии 51
2.5 Переменные 52
2.6 Чтение входных данных с клавиатуры 62
2.7 Выполнение расчетов 66
2.8 Подробнее о выводе данных 79
2.9 Именованные константы 87
2.10 Введение в черепашью графику 88
Вопросы для повторения 114
Задачи по программированию 119
Глава 3. Структуры принятия решения и булева логика
125
3.1 Инструкция if 125
3.2 Инструкция if-else 133
3.3 Сравнение строковых значений 137
3.4 Вложенные структуры принятия решения и инструкция if-elif-else 141
3.5 Логические операторы 149
3.6 Булевы переменные 156
3.7 Черепашья графика: определение состояния черепахи 157
Вопросы для повторения 165
Задачи по программированию 169
Глава 4. Структуры с повторением
177
4.1 Введение в структуры повторения 177
4.2 Цикл while: цикл c условием повторения 178
4.3 Цикл for: цикл со счетчиком повторений 185
4.4 Вычисление нарастающего итога 196
4.5 Сигнальные метки 200
4.6 Циклы валидации входных данных 202
4.7 Вложенные циклы 207
4.8 Черепашья графика: применение циклов для рисования узоров 214
Вопросы для повторения 217
Задачи по программированию 220
Глава 5. Функции
225
5.1 Введение в функции 225
5.2 Определение и вызов функции без возврата значения 228
5.3 Проектирование программы с использованием функций 233
5.4 Локальные переменные 239
5.5 Передача аргументов в функцию 241
5.6 Глобальные переменные и глобальные константы 251
5.7 Введение в функции с возвратом значения: генерирование случайных чисел 255
5.8 Написание функций с возвратом значения 265
5.9 Математический модуль math 277
5.10 Хранение функций в модулях 280
5.11 Черепашья графика: модуляризация кода при помощи функций 284
Вопросы для повторения 291
Задачи по программированию 296
Глава 6. Файлы и исключения
303
6.1 Введение в файловый ввод и вывод 303
6.2 Применение циклов для обработки файлов 320
6.3 Обработка записей 327
6.4 Исключения 340
Вопросы для повторения 353
Задачи по программированию 357
Глава 7. Списки и кортежи
361
7.1 Последовательности 361
7.2 Введение в списки 361
7.3 Нарезка списка 369
7.4 Поиск значений в списках при помощи инструкции in 372
7.5 Списковые методы и полезные встроенные функции 373
7.6 Копирование списков 381
7.7 Обработка списков 382
7.8 Двумерные списки 395
7.9 Кортежи 399
7.10 Построение графиков с данными списков при помощи пакета matplotlib 401
Вопросы для повторения 418
Задачи по программированию 421
Глава 8. Подробнее о строковых данных
427
8.1 Базовые строковые операции 427
8.2 Нарезка строковых значений 434
8.3 Проверка, поиск и манипуляция строковыми данными 439
Вопросы для повторения 451
Задачи по программированию 454
Глава 9. Словари и множества
459
9.1 Словари 459
9.2 Множества 483
9.3 Сериализация объектов 496
Вопросы для повторения 502
Задачи по программированию 507
Глава 10. Классы и объектно-ориентированное программирование
513
10.1 Процедурное и объектно-ориентированное программирование 513
10.2 Классы 516
10.3 Работа с экземплярами 534
10.4 Приемы конструирования классов 556
Вопросы для повторения 567
Задачи по программированию 571
Глава 11. Наследование
575
11.1 Введение в наследование 575
11.2 Полиморфизм 589
Вопросы для повторения 596
Задачи по программированию 598
Глава 12. Рекурсия
601
12.1 Введение в рекурсию 601
12.2 Решение задач на основе рекурсии 604
12.3 Примеры алгоритмов на основе рекурсии 607
Вопросы для повторения 615
Задачи по программированию 618
Глава 13. Программирование графического пользовательского интерфейса
619
13.1 Графические интерфейсы пользователя 619
13.2 Использование модуля tkinter 621
13.3 Вывод текста при помощи элемента интерфейса Label 624
13.4 Упорядочение элементов интерфейса при помощи рамок Frame 628
13.5 Элементы интерфейса Button и информационные диалоговые окна 630
13.6 Получение входных данных при помощи элемента интерфейса Entry 634
13.7 Применение элементов Label в качестве полей вывода 637
13.8 Радиокнопки и флаговые кнопки 644
13.9 Рисование фигур при помощи элемента интерфейса Canvas 651
Вопросы для повторения 671
Задачи по программированию 675
Глава 14. Основы функционального программирования
681
14.1 Принципы функционального программирования 681
14.2 Оператор lambda, функции map, filter, reduce и другие 682
14.3 Включение в последовательность 687
14.4 Замыкание 689
14.5 Функциональное ядро программы на основе конвейера 691

Приложение 1. Установка языка Python 699
Скачивание языка Python 699
Установка Python 3.x в Windows 699

Приложение 2. Введение в среду IDLE 701
Запуск среды IDLE и использование оболочки Python 701
Написание программы Python в редакторе IDLE 703
Цветная разметка 704
Автоматическое выделение отступом 704
Сохранение программы 705
Выполнение программы 705
Другие ресурсы 706

Приложение 3. Набор символов ASCII 707

Приложение 4. Предопределенные именованные цвета 709

Приложение 5. Подробнее об инструкции import 715
Импортирование конкретной функции или класса 715
Импорт с подстановочным символом 716
Использование псевдонимов 716

Приложение 6. Установка модулей при помощи менеджера пакетов pip 719

Приложение 7. Ответы на вопросы в Контрольных точках 721
Глава 1 721
Глава 2 722
Глава 3 724
Глава 4 725
Глава 5 727
Глава 6 729
Глава 7 730
Глава 8 732
Глава 9 733
Глава 10 735
Глава 11 736
Глава 12 736
Глава 13 736

Предметный указатель 739