Изучаем Python: программирование игр, визуализация данных, веб-приложения. 3-е изд.
«Изучаем Python» — это самое популярное в мире руководство по языку Python. Вы сможете не только максимально быстро его освоить, но и научитесь писать программы, устранять ошибки и создавать работающие приложения.
В первой части книги вы познакомитесь с основными концепциями программирования, такими как переменные, списки, классы и циклы, а простые упражнения приучат вас к шаблонам чистого кода. Вы узнаете, как делать программы интерактивными и как протестировать код, прежде чем добавлять в проект. Во второй части вы примените новые знания на практике и создадите три проекта: аркадную игру в стиле Space Invaders, визуализацию данных с удобными библиотеками Python и простое веб-приложение, которое можно быстро развернуть онлайн.
Работая с книгой, вы научитесь:
- Использовать мощные библиотеки и инструменты Python: Pygame, Matplotlib, Plotly и Django
- Создавать 2D-игры разной сложности, которыми можно управлять с клавиатуры и мыши
- Создавать интерактивную визуализацию данных
- Разрабатывать, настраивать и развертывать веб-приложения
- Разбираться с багами и ошибками
Новое издание было тщательно переработано и отражает последние достижения в практиках программирования на Python. Первая часть книги была дополнена новой информацией о f-строках, константах и управлении данными. Во второй части был обновлен код проектов. Структура проектов и код стали более чистыми и понятными, теперь они используют всю мощь популярных библиотек и инструментов, таких как Plotly и Django. (Полный список обновлений можно найти в предисловии.)
Если вы подумываете «А не заняться ли мне программированием?», то эта книга — идеальный старт. Не нужно больше ждать! Погнали!
Отзывы о книге . 10
Об авторе . 11
О научном редакторе . 11
Предисловие к третьему изданию 13
Благодарности 16
Введение 17
Для кого написана эта книга? . 17
Чему эта книга вас научит? 18
Онлайн-ресурсы . 19
Почему именно Python? 19
От издательства . 20
ЧАСТЬ I. ОСНОВЫ 21
Глава 1. Первые шаги 22
Подготовка среды программирования . 22
Python в разных операционных системах 23
Запуск программы Hello World . 28
Решение проблем с установкой . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Запуск программ Python в терминале 31
Итоги . 32
Глава 2. Переменные и простые типы данных 33
Что происходит при запуске hello_world.py . 33
Переменные . 33
Строки . 37
Числа . 43
Комментарии 46
Дзен Python 47
Итоги . 49
Глава 3. Списки . 50
Что такое список? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Индексы начинаются с 0, а не с 1 . 51
Изменение, добавление и удаление элементов . 53
Упорядочение списка . 59
Ошибки индексирования при работе со списками . 62
Итоги . 63
Глава 4. Работа со списками 64
Перебор всего списка . 64
Предотвращение ошибок с отступами . 67
Создание числовых списков 71
Работа с частью списка 75
Кортежи . 80
Стиль программирования 82
Итоги . 85
Глава 5. Команды if 86
Проверка условий 87
Команды if 93
Использование команд if со списками . 100
Оформление команд if 104
Итоги . 104
Глава 6. Словари . 106
Простой словарь . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Работа со словарями 107
Перебор словаря 114
Вложение . 120
Итоги . 127
Глава 7. Ввод данных и циклы while . 128
Как работает функция input() . 128
Циклы while 132
Использование цикла while со списками и словарями 138
Итоги . 142
Глава 8. Функции . 143
Определение функции 143
Передача аргументов . 145
Возвращаемое значение . 151
Передача списка 156
Хранение функций в модулях . 163
Стилевое оформление функций 167
Итоги . 168
Глава 9. Классы . 170
Создание и использование класса . 171
Работа с классами и экземплярами . 175
Наследование . 180
Импортирование классов 187
Стандартная библиотека Python . 193
Оформление классов 194
Итоги . 195
Глава 10. Файлы и исключения 196
Чтение из файла 196
Запись в файл 204
Исключения . 206
Сохранение данных 215
Итоги . 221
Глава 11. Тестирование . 222
Тестирование функции . 222
Тестирование класса 229
Итоги . 235
ЧАСТЬ II. ПРОЕКТЫ 237
Программирование игры на языке Python . 238
Визуализация данных . 238
Веб-приложения . 238
ПРОЕКТ 1. ИГРА «ИНОПЛАНЕТНОЕ ВТОРЖЕНИЕ» . 239
Глава 12. Инопланетное вторжение . 240
Планирование проекта . 241
Установка Pygame 241
Создание проекта игры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
Добавление изображения корабля 245
Рефакторинг: методы _check_events() и _update_screen() . 249
Управление кораблем . 251
В двух словах . 259
Стрельба 260
Итоги . 267
Глава 13. Осторожно, пришельцы! . 268
Анализ проекта 268
Создание пришельца 269
Построение флота 272
Перемещение флота . 277
Уничтожение пришельцев 281
Завершение игры . 285
Определение исполняемых частей игры 291
Итоги . 292
Глава 14. Ведение счета 293
Добавление кнопки Play . 293
Повышение сложности . 299
Подсчет очков 302
Итоги . 317
ПРОЕКТ 2. ВИЗУАЛИЗАЦИЯ ДАННЫХ . 318
Глава 15. Генерирование данных . 319
Установка matplotlib . 320
Построение простого графика 320
Случайное блуждание 330
Моделирование бросков кубиков в Plotly . 338
Итоги . 346
Глава 16. Загрузка данных . 347
Формат CSV 347
Построение карт с глобальными наборами данных: формат JSON . 361
Итоги . 373
Глава 17. Работа с API . 374
Использование API веб-приложений . 374
Итоги . 391
ПРОЕКТ 3. ВЕБ-ПРИЛОЖЕНИЯ . 392
Глава 18. Знакомство с Django . 393
Подготовка к созданию проекта 393
Начало работы над приложением . 398
Построение других страниц 413
Итоги . 422
Глава 19. Учетные записи пользователей . 423
Редактирование данных . 423
Создание учетных записей пользователей 435
Редактирование данных . 444
Итоги . 452
Глава 20. Оформление и развертывание приложения 454
Оформление приложения Learning Log . 454
Развертывание Learning Log . 465
Итоги . 481
Послесловие 483
ПРИЛОЖЕНИЯ . 485
Приложение А. Установка Python и диагностика проблем 486
Python в Windows . 486
Python в macOS 488
Python в системе Linux 489
Ключевые слова Python и встроенные функции 489
Приложение Б. Текстовые редакторы . 491
Настройка Sublime Text . 492
Другие текстовые редакторы и IDE . 493
Приложение В. Помощь и поддержка . 496
Первые шаги 496
Поиск в интернете 497
IRC (Internet Relay Chat) . 499
Slack 500
Discord . 501
Приложение Г. Git и контроль версий . 502
Установка Git 502
Создание проекта . 503
Игнорирование файлов 503
Инициализация репозитория 504
Проверка статуса . 504
Добавление файлов в репозиторий . 505
Закрепление . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505
Просмотр журнала 506
Второе закрепление . 506
Отмена изменений 507
Извлечение предыдущих закреплений 508
Удаление репозитория . 510