Главная страница
Навигация по странице:

  • . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

  • ЧАСТЬ I. ОСНОВЫ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Глава 1 .

  • ЧАСТЬ II. ПРОЕКТЫ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237

  • ПРОЕКТ 1. ИГРА «ИНОПЛАНЕТНОЕ ВТОРЖЕНИЕ»

  • ПРОЕКТ 2. ВИЗУАЛИЗАЦИЯ ДАННЫХ

  • ПРОЕКТ 3. ВЕБ-ПРИЛОЖЕНИЯ

  • Послесловие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483

  • Мэтиз. Изучаем Python. Crash course2 n d e d i t i o na h a n d s o n, p r o j e c t b a s e d i n t r o d u c t i o n t o p r o g r a m m i n g


    Скачать 6.2 Mb.
    НазваниеCrash course2 n d e d i t i o na h a n d s o n, p r o j e c t b a s e d i n t r o d u c t i o n t o p r o g r a m m i n g
    Дата28.06.2022
    Размер6.2 Mb.
    Формат файлаpdf
    Имя файлаМэтиз. Изучаем Python.pdf
    ТипДокументы
    #618322
    страница1 из 52
      1   2   3   4   5   6   7   8   9   ...   52

    PYTHON
    CRASH COURSE
    2 N D E D I T I O N
    A H a n d s - O n ,
    P r o j e c t - B a s e d I n t r o d u c t i o n
    t o P r o g r a m m i n g
    by Eric Matthes

    PYTHON
    CRASH COURSE
    2 N D E D I T I O N
    A H a n d s - O n ,
    P r o j e c t - B a s e d I n t r o d u c t i o n
    t o P r o g r a m m i n g
    by Eric Matthes
    Э Р И К М Э Т И З
    ИЗУЧАЕМ
    PYTHON
    П Р О Г Р А М М И Р О В А Н И Е И Г Р,
    В И З У А Л И З А Ц И Я Д А Н Н Ы Х,
    В Е Б - П Р И Л О Ж Е Н И Я
    3-Е И З Д А Н И Е

    ББК 32.973.2-018.1
    УДК 004.43
    М97
    Мэтиз Эрик
    М97 Изучаем Python: программирование игр, визуализация данных, веб-приложения.
    3-е изд. — СПб.: Питер, 2020. — 512 с.: ил. — (Серия «Библиотека программи- ста»).
    ISBN 978-5-4461-1528-0
    «Изучаем Python» — это самое популярное в мире руководство по языку Python. Вы сможете максимально быстро освоить Python, научитесь писать программы, устранять ошибки и создавать работающие приложения.
    В первой части книги вы познакомитесь с основными концепциями программирования, такими как переменные, списки, классы и циклы, а простые упражнения познакомят вас с шаблонами чистого кода. Вы узнаете, как делать программы интерактивными и как протестировать код, прежде чем до- бавлять в проект. Во второй части вы примените новые знания на практике и создадите три проекта: аркадную игру в стиле Space Invaders, визуализацию данных с удобными библиотеками Python и про- стое веб-приложение, которое можно быстро развернуть онлайн.
    16+
    (В соответствии с Федеральным законом от 29 декабря 2010 г. № 436-ФЗ.)
    ББК 32.973.2-018.1
    УДК 004.43
    Права на издание получены по соглашению с No Starch Press. Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав.
    Информация, содержащаяся в данной книге, получена из источников, рассматриваемых издательством как на- дежные. Тем не менее, имея в виду возможные человеческие или технические ошибки, издательство не может гарантировать абсолютную точность и полноту приводимых сведений и не несет ответственности за возможные ошибки, связанные с использованием книги. Издательство не несет ответственности за доступность материалов, ссылки на которые вы можете найти в этой книге. На момент подготовки книги к изданию все ссылки на интернет- ресурсы были действующими.
    ISBN 978-1593279288 англ.
    © 2019 by Eric Matthes.
    Title of English-language original: Python Crash Course, 2nd Edition:
    A Hands-On, Project-Based Introduction to Programming,
    ISBN 978-1-59327-928-8, published by No Starch Press.
    ISBN 978-5-4461-1528-0
    © Перевод на русский язык ООО Издательство «Питер», 2020
    © Издание на русском языке, оформление ООО Издательство
    «Питер», 2020
    © Серия «Библиотека программиста», 2020

    Оглавление
    Отзывы о книге . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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

    6 Оглавление
    Дзен 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

    Оглавление 7
    Возвращаемое значение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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

    8 Оглавление
    Стрельба . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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

    Оглавление 9
    Глава 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
      1   2   3   4   5   6   7   8   9   ...   52


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