
Представляем 5-е издание мирового бестселлера Тони Гэддиса “Начинаем программировать на Python”.
Изложены принципы программирования, с помощью которых читатель приобретет навыки алгоритмического решения задач на языке Python, даже не имея опыта программирования. Дано краткое введение в компьютеры и программирование. Рассмотрен ввод, обработка и вывод данных, управляющие структуры и булева логика, структуры с повторением, функции, файлы и исключения, списки и кортежи, строковые данные, словари и множества, классы и ООП, наследование, рекурсия, программирование интерфейса, функциональное программирование и др.
Для облегчения понимания сути алгоритмов широко использованы блок-схемы, псевдокод и другие инструменты. Приведено большое количество сжатых и практичных примеров программ. В каждой главе предложены тематические задачи с пошаговым анализом их решения.
В пятом издании добавлена глава о программировании баз данных.
Для начинающих программистов, старших школьников и студентов первых курсов
От автора
Добро пожаловать в пятое издание книги “Начинаем программировать на Python”. В ней изложены принципы программирования, с помощью которых вы приобретете навыки алгоритмического решения задач на языке Python, даже если у вас нет опыта программирования. На доступных для понимания примерах, псевдокоде, блок-схемах и других инструментах вы научитесь разрабатывать алгоритмы и реализовывать их в программах. Книга идеально подходит для вводного курса по программированию или курса программной логики и разработки программного обеспечения на основе языка Python.
Отличительным признаком издания является его ясное, дружественное и легкое для понимания изложение материала. Помимо этого, оно располагает большим количеством сжатых и практичных примеров программ. Программы, в свою очередь, содержат лаконичные примеры, посвященные конкретным темам программирования, а также более развернутые примеры, направленные на решение задач. В каждой главе предложено одно или несколько тематических исследований, которые обеспечивают пошаговый анализ конкретной задачи и демонстрируют обучаемому ее решение.
В книге рассмотрены
- Краткое введение в компьютеры и программирование
- Ввод, обработка и вывод данных
- Управляющие структуры и булева логика
- Структуры с повторением и функции
- Файлы и исключения
- Списки и кортежи
- Строковые данные, словари и множества
- Классы и объектно-ориентированное программирование
- Наследование и рекурсия
- Функциональное программирование
- Программирование баз данных
Изменения в пятом издании
Четкий стиль написания этой книги остается таким же, как и в предыдущем издании. Тем не менее было внесено много дополнений и улучшений, которые кратко изложены далее.
- Программирование баз данных. В этом издании добавлена новая глава о программировании баз данных на SQL и Python с помощью СУБД SQLite (см. главу 14).
- Списки, словари и множества. В этом издании объясняются операции включения в список, словарь и множество.
- Обновленные темы о строковых литералах. Добавлено несколько новых тем.
- Программирование графического интерфейса. В главу 13 было добавлено несколько новых тем о программировании графического интерфейса
- Случайный выбор элементов списка. Функция random.choice() введена в главе 7 как способ случайного выбора элементов списка.
- Новые темы, связанные с функциями. В главу 5 было добавлено несколько новых тем.

Тони Гэддис — ведущий автор всемирно известной серии книг “Начинаем программировать…” (Starting Out With) с двадцатилетним опытом преподавания курсов информатики в колледже округа Хейвуд, шт. Северная Каролина, удостоен звания «Преподаватель года», лауреат премии «Педагогическое мастерство». В серии “Начинаем программировать…” издаются книги, посвященные языкам программирования C++, Java™, Microsoft® Visual Basic®, Microsoft® C#®, Python®, Alice, среде визуальной разработки android-приложений App Inventor, а также программированию логики и дизайна. Все они были опубликованы в издательстве Pearson. Дополнительную информацию можно найти на сайте www.pearsonhighered.com/gaddisbooks.
Содержание
Предисловие…………………………………………………………………………………………………………. 1
Прежде всего управляющие структуры и только потом классы………………………………………………………………. 1
Изменения в пятом издании………………………………………………………………………………………………………………………….. 1
Краткий обзор глав………………………………………………………………………………………………………………………………………. 2
Организация учебного материала………………………………………………………………………………………………………………. 6
Структурные элементы и условные обозначения книги…………………………………………………………………………… 6
Дополнительные материалы……………………………………………………………………………………………………………………….. 7
Электронный архив………………………………………………………………………………………………………………………………………. 8
Об авторе……………………………………………………………………………………………………………………………………………………….. 8
Глава 1. Введение в компьютеры и программирование………………………………………… 9
1.1 Введение…………………………………………………………………………………………………………………………………………….. 9
1.2 Аппаратное и программное обеспечение……………………………………………………………………………………… 10
1.3 Как компьютеры хранят данные……………………………………………………………………………………………………. 15
1.4 Как программа работает………………………………………………………………………………………………………………… 20
1.5 Использование языка Python………………………………………………………………………………………………………….. 28
Вопросы для повторения……………………………………………………………………………………………………………………………. 32
Упражнения…………………………………………………………………………………………………………………………………………………. 36
Глава 2. Ввод, обработка и вывод………………………………………………………………………. 38
2.1 Проектирование программы…………………………………………………………………………………………………………… 38
2.2 Ввод, обработка и вывод………………………………………………………………………………………………………………… 43
2.3 Вывод данных на экран при помощи функции print……………………………………………………………………. 43
2.4 Комментарии……………………………………………………………………………………………………………………………………. 46
2.5 Переменные……………………………………………………………………………………………………………………………………… 47
2.6 Чтение входных данных с клавиатуры…………………………………………………………………………………………. 57
2.7 Выполнение расчетов……………………………………………………………………………………………………………………… 61
2.8 Конкатенация строковых литералов…………………………………………………………………………………………….. 74
2.9 Подробнее об инструкции print……………………………………………………………………………………………………… 76
2.10 Вывод на экран форматированного результата с помощью f-строк………………………………………….. 79
2.11 Именованные константы………………………………………………………………………………………………………………… 88
2.12 Введение в черепашью графику…………………………………………………………………………………………………….. 90
Вопросы для повторения…………………………………………………………………………………………………………………………. 118
Упражнения по программированию……………………………………………………………………………………………………….. 124
Глава 3. Структуры принятия решения и булева логика………………………………….. 128
3.1 Инструкция if…………………………………………………………………………………………………………………………………. 128
3.2 Инструкция if-else………………………………………………………………………………………………………………………….. 136
3.3 Сравнение строковых значений…………………………………………………………………………………………………… 140
3.4 Вложенные структуры принятия решения и инструкция if-elif-else…………………………………………. 144
3.5 Логические операторы………………………………………………………………………………………………………………….. 152
3.6 Булевы переменные………………………………………………………………………………………………………………………. 159
3.7 Черепашья графика: определение состояния черепахи…………………………………………………………….. 160
Вопросы для повторения…………………………………………………………………………………………………………………………. 168
Упражнения по программированию……………………………………………………………………………………………………….. 172
Глава 4. Структуры с повторением…………………………………………………………………… 179
4.1 Введение в структуры повторения………………………………………………………………………………………………. 179
4.2 Цикл while: цикл c условием повторения…………………………………………………………………………………….. 180
4.3 Цикл for: цикл со счетчиком повторений…………………………………………………………………………………….. 187
4.4 Вычисление нарастающего итога……………………………………………………………………………………………….. 198
4.5 Сигнальные метки…………………………………………………………………………………………………………………………. 202
4.6 Циклы валидации входных данных…………………………………………………………………………………………….. 204
4.7 Вложенные циклы…………………………………………………………………………………………………………………………. 208
4.8 Черепашья графика: применение циклов для рисования узоров………………………………………………. 215
Вопросы для повторения…………………………………………………………………………………………………………………………. 219
Упражнения по программированию……………………………………………………………………………………………………….. 222
Глава 5. Функции……………………………………………………………………………………………… 226
5.1 Введение в функции………………………………………………………………………………………………………………………. 226
5.2 Определение и вызов функции без возврата значения……………………………………………………………….. 229
5.3 Проектирование программы с использованием функций………………………………………………………….. 234
5.4 Локальные переменные………………………………………………………………………………………………………………… 241
5.5 Передача аргументов в функцию…………………………………………………………………………………………………. 243
5.6 Глобальные переменные и глобальные константы……………………………………………………………………. 252
5.7 Введение в функции с возвратом значения: генерирование случайных чисел……………………….. 256
5.8 Написание функций с возвратом значения…………………………………………………………………………………. 267
5.9 Математический модуль math……………………………………………………………………………………………………… 281
5.10 Хранение функций в модулях………………………………………………………………………………………………………. 284
5.11 Черепашья графика: модуляризация кода при помощи функций……………………………………………… 290
Вопросы для повторения…………………………………………………………………………………………………………………………. 296
Упражнения по программированию……………………………………………………………………………………………………….. 302
Глава 6. Файлы и исключения………………………………………………………………………….. 308
6.1 Введение в файловый ввод и вывод……………………………………………………………………………………………… 308
6.2 Применение циклов для обработки файлов………………………………………………………………………………… 325
6.3 Обработка записей………………………………………………………………………………………………………………………… 332
6.4 Исключения……………………………………………………………………………………………………………………………………. 345
Вопросы для повторения…………………………………………………………………………………………………………………………. 358
Упражнения по программированию……………………………………………………………………………………………………….. 362
Глава 7. Списки и кортежи……………………………………………………………………………….. 365
7.1 Последовательности……………………………………………………………………………………………………………………… 365
7.2 Введение в списки………………………………………………………………………………………………………………………….. 365
7.3 Нарезка списка………………………………………………………………………………………………………………………………. 374
7.4 Поиск значений в списках при помощи инструкции in………………………………………………………………. 377
7.5 Методы обработки списков и полезные встроенные функции………………………………………………….. 379
7.6 Копирование списков……………………………………………………………………………………………………………………. 386
7.7 Обработка списков………………………………………………………………………………………………………………………… 388
7.8 Включение в список………………………………………………………………………………………………………………………. 401
7.9 Двумерные списки…………………………………………………………………………………………………………………………. 404
7.10 Кортежи………………………………………………………………………………………………………………………………………….. 408
7.11 Построение графиков с данными списков при помощи пакета matplotlib……………………………….. 410
Вопросы для повторения…………………………………………………………………………………………………………………………. 427
Упражнения по программированию……………………………………………………………………………………………………….. 432
Глава 8. Подробнее о строковых данных………………………………………………………….. 436
8.1 Базовые строковые операции………………………………………………………………………………………………………. 436
8.2 Нарезка строковых значений……………………………………………………………………………………………………….. 443
8.3 Проверка, поиск и манипуляция строковыми данными…………………………………………………………….. 448
Вопросы для повторения…………………………………………………………………………………………………………………………. 464
Упражнения по программированию……………………………………………………………………………………………………….. 467
Глава 9. Словари и множества………………………………………………………………………….. 472
9.1 Словари………………………………………………………………………………………………………………………………………….. 472
9.2 Множества……………………………………………………………………………………………………………………………………… 498
9.3 Сериализация объектов………………………………………………………………………………………………………………… 512
Вопросы для повторения…………………………………………………………………………………………………………………………. 518
Упражнения по программированию……………………………………………………………………………………………………….. 524
Глава 10. Классы и объектно-ориентированное программирование…………………. 528
10.1 Процедурное и объектно-ориентированное программирование……………………………………………… 528
10.2 Классы……………………………………………………………………………………………………………………………………………. 531
10.3 Работа с экземплярами…………………………………………………………………………………………………………………. 548
10.4 Приемы конструирования классов………………………………………………………………………………………………. 571
Вопросы для повторения…………………………………………………………………………………………………………………………. 582
Упражнения по программированию……………………………………………………………………………………………………….. 585
Глава 11. Наследование……………………………………………………………………………………. 590
11.1 Введение в наследование……………………………………………………………………………………………………………… 590
11.2 Полиморфизм…………………………………………………………………………………………………………………………………. 604
Вопросы для повторения…………………………………………………………………………………………………………………………. 611
Упражнения по программированию……………………………………………………………………………………………………….. 613
Глава 12. Рекурсия……………………………………………………………………………………………. 615
12.1 Введение в рекурсию…………………………………………………………………………………………………………………….. 615
12.2 Решение задач на основе рекурсии……………………………………………………………………………………………… 618
12.3 Примеры алгоритмов на основе рекурсии………………………………………………………………………………….. 621
Вопросы для повторения…………………………………………………………………………………………………………………………. 629
Упражнения по программированию……………………………………………………………………………………………………….. 632
Глава 13. Программирование графического пользовательского интерфейса…….. 633
13.1 Графические интерфейсы пользователя……………………………………………………………………………………… 633
13.2 Использование модуля tkinter………………………………………………………………………………………………………. 635
13.3 Вывод текста с помощью виджетов Label…………………………………………………………………………………… 639
13.4 Упорядочение виджетов с помощью рамок Frame…………………………………………………………………….. 649
13.5 Виджеты Button и информационные диалоговые окна……………………………………………………………… 651
13.6 Получение входных данных с помощью виджета Entry……………………………………………………………. 655
13.7 Применение виджетов Label в качестве полей вывода………………………………………………………………. 657
13.8 Радиокнопки и флаговые кнопки………………………………………………………………………………………………….. 665
13.9 Виджеты Listbox…………………………………………………………………………………………………………………………….. 671
13.10 Рисование фигур с помощью виджета Canvas……………………………………………………………………………. 691
Вопросы для повторения…………………………………………………………………………………………………………………………. 711
Упражнения по программированию……………………………………………………………………………………………………….. 715
Глава 14. Программирование баз данных…………………………………………………………. 718
14.1 Системы управления базами данных………………………………………………………………………………………….. 718
14.2 Таблицы, строки и столбцы………………………………………………………………………………………………………….. 720
14.3 Открытие и закрытие соединения с базой данных с помощью SQLite……………………………………… 724
14.4 Создание и удаление таблиц……………………………………………………………………………………………………….. 727
14.5 Добавление данных в таблицу…………………………………………………………………………………………………….. 731
14.6 Запрос данных с помощью инструкции SQL SELECT……………………………………………………………….. 739
14.7 Обновление и удаление существующих строк…………………………………………………………………………… 754
14.8 Подробнее о первичных ключах………………………………………………………………………………………………….. 761
14.9 Обработка исключений базы данных…………………………………………………………………………………………. 765
14.10 Операции CRUD…………………………………………………………………………………………………………………………….. 767
14.11 Реляционные данные…………………………………………………………………………………………………………………….. 775
Вопросы для повторения…………………………………………………………………………………………………………………………. 791
Упражнения по программированию……………………………………………………………………………………………………….. 798
Приложение 1. Установка Python……………………………………………………………………… 803
Скачивание Python…………………………………………………………………………………………………………………………………… 803
Установка Python 3.x в Windows……………………………………………………………………………………………………………… 803
Приложение 2. Введение в среду IDLE………………………………………………………………. 805
Запуск среды IDLE и использование оболочки Python………………………………………………………………………… 805
Написание программы Python в редакторе IDLE………………………………………………………………………………….. 807
Цветовая разметка……………………………………………………………………………………………………………………………………. 808
Автоматическое выделение отступом…………………………………………………………………………………………………….. 808
Сохранение программы…………………………………………………………………………………………………………………………… 809
Выполнение программы…………………………………………………………………………………………………………………………… 809
Другие ресурсы…………………………………………………………………………………………………………………………………………. 810
Приложение 3. Набор символов ASCII………………………………………………………………. 811
Приложение 4. Предопределенные именованные цвета……………………………………. 812
Приложение 5. Подробнее об инструкции import………………………………………………. 817
Импортирование конкретной функции или класса……………………………………………………………………………….. 817
Импорт с подстановочным символом…………………………………………………………………………………………………….. 818
Использование псевдонимов……………………………………………………………………………………………………………………. 818
Приложение 6. Форматирование числовых результатов с помощью
функции format()……………………………………………………………………………………………….. 820
Форматирование в научной нотации……………………………………………………………………………………………………… 821
Вставка запятых в качестве разделителей…………………………………………………………………………………………….. 822
Указание минимальной ширины поля…………………………………………………………………………………………………….. 822
Процентный формат чисел с плавающей точкой………………………………………………………………………………….. 824
Форматирование целых чисел………………………………………………………………………………………………………………… 824
Приложение 7. Установка модулей при помощи менеджера пакетов pip…………… 825
Приложение 8. Ответы на вопросы в Контрольных точках……………………………… 826
Глава 1………………………………………………………………………………………………………………………………………………………. 826
Глава 2………………………………………………………………………………………………………………………………………………………. 827
Глава 3………………………………………………………………………………………………………………………………………………………. 829
Глава 4………………………………………………………………………………………………………………………………………………………. 831
Глава 5………………………………………………………………………………………………………………………………………………………. 832
Глава 6………………………………………………………………………………………………………………………………………………………. 834
Глава 7………………………………………………………………………………………………………………………………………………………. 836
Глава 8………………………………………………………………………………………………………………………………………………………. 838
Глава 9………………………………………………………………………………………………………………………………………………………. 839
Глава 10…………………………………………………………………………………………………………………………………………………….. 840
Глава 11…………………………………………………………………………………………………………………………………………………….. 841
Глава 12…………………………………………………………………………………………………………………………………………………….. 842
Глава 13…………………………………………………………………………………………………………………………………………………….. 842
Глава 14…………………………………………………………………………………………………………………………………………………….. 844
Предметный указатель……………………………………………………………………………………… 847
-
Начинаем программировать на Python. 5-е изд.
2250 ₽
1912 ₽