Изучаем Python. Программирование игр, визуализация данных, веб-приложения - 2017

  • Автор темы Kria
  • 105
  • Обновлено
  • 16, Apr 2023
  • #1
Изучаем Python. Программирование игр, визуализация данных, веб-приложения (2017) (PDF, EPUB)



Описание:

Книга "Изучаем Python" - это ускоренный курс, который позволит вам сэкономить время и сразу начать писать работоспособные программы (игры, визуализации данных, веб-приложения и многое другое).

Хотите стать программистом? В первой части книги вам предстоит узнать о базовых принципах программирования, познакомиться со списками, словарями, классами и циклами, вы научитесь создавать программы и тестировать код.



Во второй части книги вы начнете использовать знания на практике, работая над тремя крупными проектами: создадите собственную "стрелялку" с нарастающей сложностью уровней, займетесь работой с большими наборами данных и освоите их визуализацию, и, наконец, создадите полноценное веб-приложение на базе Django, гарантирующее конфиденциальность пользовательской информации.

Если вы решились разобраться в том что такое программирование, не нужно ждать.

Ключ на старт и вперед!

Спойлер: Содержание:

Об авторе . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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

Создание числовых списков . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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

Послесловие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492

Спойлер: Страницы:































Скачать:


Скрытая информация :: Авторизуйтесь для просмотра »




Kria


Рег
08 Aug, 2010

Тем
2

Постов
4

Баллов
24
Тем
49554
Комментарии
57426
Опыт
552966

Интересно