Главная страница

Книга Изучаем Python


Скачать 4.68 Mb.
НазваниеКнига Изучаем Python
Дата10.12.2022
Размер4.68 Mb.
Формат файлаpdf
Имя файлаErik_Metiz_Izuchaem_Python_Programmirovanie_igr_vizualizatsia_da.pdf
ТипКнига
#837531
страница1 из 53
  1   2   3   4   5   6   7   8   9   ...   53

ББК 32.973.2-018.1
УДК 004.43
М54
Мэтиз Эрик
М54 Изучаем Python. Программирование игр, визуализация данных, веб-прило- жения. — СПб.: Питер, 2017. — 496 с.: ил. — (Серия «Библиотека программиста»).
ISBN
978-5-496-02305-4
Книга «Изучаем Python» — это ускоренный курс, который позволит вам сэкономить время и сразу начать писать работоспособные программы (игры, визуализации данных, веб-приложения и многое другое). Хотите стать программистом? В первой части книги вам предстоит узнать о базо- вых принципах программирования, познакомиться со списками, словарями, классами и циклами, вы научитесь создавать программы и тестировать код. Во второй части книги вы начнете использовать знания на практике, работая над тремя крупными проектами: создадите собственную «стрелялку» с нарастающей сложностью уровней, займетесь работой с большими наборами данных и освоите их визуализацию, и, наконец, создадите полноценное веб-приложение на базе Django, гарантирующее конфиденциальность пользовательской информации. Если вы решились разобраться в том, что такое программирование, не нужно ждать. Ключ на старт и вперед!
12+
(В соответствии с Федеральным законом от 29 декабря 2010 г. № 436-ФЗ.)
ББК 32.973.2-018.1
УДК 004.43
Права на издание получены по соглашению с No Starch Press Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав.
ISBN 978-1593276034 англ.
© 2016 by Eric Matthes
ISBN 978-5-496-02305-4
© Перевод на русский язык ООО Издательство «Питер», 2017
© Издание на русском языке, оформление
ООО Издательство «Питер», 2017
© Серия «Вы и ваш ребенок», 2017

Оглавление
Об авторе . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Благодарности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Часть I. Основы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Глава 1. Начало работы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Подготовка среды программирования . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Решение проблем с установкой . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Запуск программ Python в терминале . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Глава 2. Переменные и простые типы данных . . . . . . . . . . . . . . . . . . 32
Что происходит при запуске hello_world .py . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Переменные . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Строки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Числа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Комментарии . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Философия Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Глава 3. Списки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Что такое список? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Индексы начинаются с 0, а не с 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Упорядочение списка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Ошибки индексирования при работе со списками . . . . . . . . . . . . . . . . . . . . . 59
Итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Глава 4. Работа со списками . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Перебор всего списка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

6 Оглавление
Создание числовых списков . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Работа с частью списка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Кортежи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Стиль программирования . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Глава 5. Команды if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Проверка условий . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Команды if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Использование команд if со списками . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Оформление команд if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Глава 6. Словари . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Простой словарь . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Работа со словарями . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Перебор словаря . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Вложение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Глава 7. Ввод данных и циклы while . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Как работает функция input() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Циклы while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Использование цикла while со списками и словарями . . . . . . . . . . . . . . . . . 130
Итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Глава 8. Функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Определение функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Передача аргументов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Возвращаемое значение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Передача списка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Хранение функций в модулях . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Стилевое оформление функций . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Глава 9. Классы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Создание и использование класса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Работа с классами и экземплярами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Наследование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Импортирование классов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
Импортирование нескольких классов из модуля . . . . . . . . . . . . . . . . . . . . . 179
Стандартная библиотека Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
Оформление классов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184

Оглавление 7
Глава 10. Файлы и исключения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Чтение из файла . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Запись в файл . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
Исключения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Сохранение данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
Итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Глава 11. Тестирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Тестирование функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Тестирование класса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
Итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Часть II. Проекты. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Программирование игры на языке Python . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Визуализация данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Веб-приложения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Глава 12. Стреляющий корабль . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Планирование проекта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Установка Pygame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
Создание проекта игры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
Добавление изображения корабля . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
Рефакторинг: модуль game_functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
Управление кораблем . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
В двух словах . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Стрельба . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
Итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
Глава 13. Осторожно, пришельцы! . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
Анализ проекта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
Создание пришельца . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
Построение флота . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
Перемещение флота . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
Уничтожение пришельцев . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
Завершение игры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
Определение исполняемых частей игры . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
Итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
Глава 14. Ведение счета . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
Добавление кнопки Play . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
Повышение сложности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
Подсчет очков . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
Итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307

8 Оглавление
Глава 15. Генерирование данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
Установка matplotlib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
Построение простого графика . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
Случайное блуждание . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
Моделирование бросков кубиков в Pygal . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
Итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
Глава 16. Загрузка данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
Формат CSV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
Формат JSON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
Итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
Глава 17. Работа с API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
Использование API веб-приложений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
Итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
Глава 18. Знакомство с Django . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
Подготовка к созданию проекта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
Начало работы над приложением . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
Построение других страниц . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
Итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
Глава 19. Учетные записи пользователей . . . . . . . . . . . . . . . . . . . . . 408
Редактирование данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
Создание учетных записей пользователей . . . . . . . . . . . . . . . . . . . . . . . . . . 419
Редактирование данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
Итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
Глава 20. Оформление и развертывание приложения . . . . . . . . . . . 437
Оформление приложения Learning Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
Развертывание Learning Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448
Итоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
Приложение А. Установка Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
Python в системе Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
Python в OS X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
Python в Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
Ключевые слова и встроенные функции Python . . . . . . . . . . . . . . . . . . . . . . 469
Приложение Б. Текстовые редакторы . . . . . . . . . . . . . . . . . . . . . . . . 471
Geany . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
Sublime Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
IDLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
Emacs и vim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477

Оглавление 9
Приложение В. Помощь и поддержка . . . . . . . . . . . . . . . . . . . . . . . . . 478
Первые шаги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
Поиск в Интернете . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
IRC (Internet Relay Chat) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
Приложение Г. Git и контроль версий . . . . . . . . . . . . . . . . . . . . . . . . . 483
Установка Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
Создание проекта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
Игнорирование файлов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
Инициализация репозитория . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
Проверка статуса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
Добавление файлов в репозиторий . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
Закрепление . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
Просмотр журнала . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487
Второе закрепление . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487
Отмена изменений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
Извлечение предыдущих закреплений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489
Удаление репозитория . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490
  1   2   3   4   5   6   7   8   9   ...   53


написать администратору сайта