мэтиз изучаем python программирование игр визуализация данных веб приложения

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

Привет, Хаброжители! Недавно у нас вышла новая книга Эрика Мэтиза:

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

Чему эта книга вас научит?

Цель книги — сделать вас хорошим программистом вообще и хорошим программистом Python в частности. Процесс обучения будет эффективным, и вы приобретете много полезных навыков, так как я представлю основательное введение в общие концепции программирования. После того как вы перевернете последнюю страницу, вы будете готовы к знакомству с более серьезными возможностями Python, а изучение вашего следующего языка программирования тоже упростится.

В первой части книги будут представлены базовые концепции программирования, которые необходимо знать для написания программ Python. Эти концепции ничем не отличаются от тех, которые рассматриваются в начале изучения почти любого языка программирования. Вы познакомитесь с разными видами данных и возможностями хранения данных в списках и словарях. Вы научитесь создавать коллекции данных и эффективно работать с этими коллекциями. В частности, циклы while и if позволяют выполнять определенные фрагменты кода, если некоторое условие истинно, и выполнять другие фрагменты в противном случае — эти конструкции очень сильно помогают при автоматизации процессов.

Вы научитесь получать входные данные от пользователя, чтобы ваши программы стали интерактивными, и выполнять их до тех пор, пока пользователь остается активным. Также вы узнаете, как написать функции для многократного выполнения некоторых частей ваших программ, чтобы вы один раз программировали некоторое действие, а потом могли использовать его столько раз, сколько потребуется. Затем эта концепция будет распространена на более сложное поведение с классами, что позволит даже относительно простым программам реагировать на множество разнообразных ситуаций. Вы научитесь писать программы, корректно обрабатывающие многие типичные ошибки. После знакомства с базовыми концепциями мы напишем несколько коротких программ для решения конкретных задач. Наконец, вы сделаете первые шаги на пути к программированию среднего уровня: вы научитесь писать тесты для своего кода, чтобы вы могли продолжать разработку программ, не беспокоясь о возможном внесении ошибок. Вся информация части I подготовит вас к более сложным и масштабным проектам.

В части II знания, полученные в части I, будут применены для построения трех проектов. Вы можете взяться за любые из этих проектов в том порядке, который лучше подходит для вас. В первом проекте (главы 12–14) будет создана игра-«стрелялка» в стиле классического хита Space Invaders, состоящая из многих уровней с нарастающей сложностью. После завершения этого проекта вы будете знать многое из того, что необходимо знать для разработки собственных 2D-игр.

Второй проект (главы 15–17) познакомит вас с визуализацией данных. Чтобы разобраться в огромных объемах доступной информации, специалисты по анализу данных применяют различные средства визуализации. Вы будете работать с наборами данных, генерируемыми в программах; наборами данных, загруженными из сетевых источников; и наборами данных, которые загружаются вашей программой автоматически. После завершения этого проекта вы сможете писать программы, обрабатывающие большие наборы данных и строящие визуальные представления сохраненной информации.

В третьем проекте (главы 18–20) будет построено небольшое веб-приложение Learning Log. Этот проект позволяет вести журнал новых идей и концепций, которые вы узнали в ходе изучения конкретной темы. Пользователь приложения сможет вести разные журналы по разным темам, создавать учетные записи и начинать новые журналы. Вы также узнаете, как развернуть свой проект в Интернете, чтобы любой желающий мог работать с ним откуда угодно.

Почему именно Python?

Каждый год я(автор) задумываюсь над тем, продолжать ли мне работать на Python или же перейти на другой язык — вероятно, более новый в мире программирования. И все же я продолжаю работать на Python по многим причинам. Язык Python невероятно эффективен: ваши программы делают больше, чем многие другие языки, в меньшем объеме кода. Синтаксис Python также позволяет писать «чистый» код. Ваш код будет легко читаться, у вас будет меньше проблем с отладкой и расширением программ по сравнению с другими языками.

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

Впрочем, одной из самых важных причин для использования Python для меня остается сообщество Python, состоящее из невероятно разных и благожелательных людей. Сообщество играет исключительно важную роль в программировании, потому что программирование не является сугубо индивидуальным делом. Многим из нас, даже самым опытным программистам, приходится обращаться за советом к коллегам, которые уже решали похожие задачи. Существование дружного, доброжелательного сообщества помогает решать задачи, и сообщество Python готово прийти на помощь людям, у которых Python является первым языком программирования.

Об авторе

Эрик Мэтиз (Eric Matthes), преподаватель физики и математики, живет на Аляске и ведет курс Python начального уровня. Эрик пишет программы с пяти лет, а в настоящее время занимается разработкой продуктов, которые исправляют недочеты в системе образования и помогают использовать возможности программных продуктов с открытым кодом в системе образования. В свободное время занимается альпинизмом и проводит время с семьей.

О научном рецензенте

Кеннет Лав (Kenneth Love) — преподаватель и программист Python с многолетним стажем. Он выступал с докладами и лекциями на конференциях, занимался профессиональной подготовкой, работал внештатным программистом Python и Django, а в настоящее время ведет занятия в компании дистанционного образования. Кеннет также является одним из создателей пакета django-braces, предоставляющего удобные примеси (mixins) для представлений на базе классов Django. Желающие могут читать его сообщения в Твиттере (@kennethlove).

Для Хаброжителей скидка 25% по купону — Python

Источник

Книга «Изучаем Python: программирование игр, визуализация данных, веб-приложения. 3-е изд.»

Привет, Хаброжители! Мы выпустили третью версию #1 Best Seller in Python Programming Amazon — популярного в мире руководства по языку Python.

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

Во второй части вы примените новые знания на практике и создадите три проекта: аркадную игру в стиле Space Invaders, визуализацию данных с удобными библиотеками Python и простое веб-приложение, которое можно быстро развернуть онлайн. Работая с книгой, вы научитесь: ∙ Использовать мощные библиотеки и инструменты Python: Pygame, Matplotlib, Plotly и Django ∙ Создавать 2D-игры разной сложности, которыми можно управлять с клавиатуры и мыши ∙ Создавать интерактивную визуализацию данных ∙ Разрабатывать, настраивать и развертывать веб-приложения ∙ Разбираться с багами и ошибками

Новое издание было тщательно переработано и отражает последние достижения в практиках программирования на Python. Первая часть книги была дополнена новой информацией о f-строках, константах и управлении данными. Во второй части был обновлен код проектов. Структура проектов и код стали более чистыми и понятными, теперь они используют всю мощь популярных библиотек и инструментов, таких как Plotly и Django.

Ниже приведена краткая сводка изменений в третьем издании:

В главе 1 инструкции по установке Python были упрощены для пользователей всех основных операционных систем. Теперь я рекомендую использовать текстовый редактор Sublime Text, который популярен как среди новичков, так и среди профессионалов и работает во всех операционных системах.

В главе 2 приведено более подробное описание того, как переменные реализованы в языке Python. Переменные описываются как текстовые метки для значений, что позволяет читателю лучше понять поведение переменных в Python. В книге широко используются f-строки, появившиеся в Python 3.6, — намного более простой и удобный механизм использования значений в строках. В Python 3.6 также появилась возможность использования символов подчеркивания для представления больших чисел (например, 1_000_000); она также включена в это издание. Множественное присваивание переменных было представлено в одном из проектов первого издания; описание было обобщено и перемещено в главу 2 для удобства читателей. Наконец, в эту главу также включена понятная система соглашений для представления констант в Python.

В главе 6 представлен метод get() для чтения значений из словаря, который может вернуть значение по умолчанию в случае отсутствия ключа.

Проект «Инопланетное вторжение» (главы 12–14) теперь полностью базируется на использовании классов. Сама игра представляет собой класс (вместо серии функций, как в предыдущем издании). Это сильно упрощает общую структуру игры, уменьшает число вызовов функций и необходимых параметров. Читатели, знакомые с первым изданием, оценят простоту нового подхода, основанного на классах. Pygame теперь может устанавливаться однострочной командой во всех системах, а читатель может выбрать между запуском игры в полноэкранном или оконном режиме.

В проектах визуализации данных инструкции по установке Matplotlib упростились для всех операционных систем. Визуализации, базирующиеся на Matplotlib, используют функцию subplots(), более удобную для обучения построению сложных визуализаций. В проекте Rolling Dice из главы 15 используется Plotly — библиотека визуализации с простым синтаксисом, качественным сопровождением и красивым выводом результатов с широкими возможностями настройки.

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

В главе 17 для визуализации активности, связанной с Python, в проектах с открытым кодом на GitHub используется библиотека Plotly.

Проект Learning Log (главы 18–20) построен на базе новейшей версии Django, а для его оформления используется новейшая версия Bootstrap. Процесс развертывания проекта в Heroku был упрощен за счет использования пакета django-heroku, и в нем используются переменные среды вместо редактирования файлов settings.py. Такое решение получается более простым и лучше соответствует тому, как профессиональные программисты развертывают современные проекты Django.

Приложение А было полностью переработано. В него были включены рекомендации по установке Python. В приложение Б включены подробные рекомендации по настройке Sublime Text и приведены краткие описания основных текстовых редакторов и интегрированных сред, используемых в наши дни. В приложении В приведены ссылки на более новые и популярные сетевые ресурсы для получения помощи, а приложение Г предлагает небольшой учебный курс по применению Git для контроля версий.

Мы понимаем, что многих удивляет то, что мы выпустили третье издание книги, а оригинальная книга 2ed. Причина такого казуса проста. Через полгода после выхода первого издания на русском языке автор внес в книгу значительные, но мелкие изменения, исправил многие коды. Посмотрев на количество изменений, мы приняли решение назвать новую книгу «второе издание». Так что второе русскоязычное издание вышло еще 30 мая 2017 года.

А теперь 2-е международное издание пришлось выпустить как
«Изучаем Python: программирование игр, визуализация данных, веб-приложения. 3-е изд.»

Отрывок. Словари

Иногда бывает нужно сохранить множество словарей в списке или сохранить список как значение элемента словаря. Создание сложных структур такого рода называется вложением. Вы можете вложить множество словарей в список, список элементов в словарь или даже словарь внутрь другого словаря. Как наглядно показывают следующие примеры, вложение — чрезвычайно мощный механизм.

Список словарей

Словарь alien_0 содержит разнообразную информацию об одном пришельце, но в нем нет места для хранения информации о втором пришельце, не говоря уже о целом экране, забитом пришельцами. Как смоделировать флот вторжения? Например, можно создать список пришельцев, в котором каждый элемент представляет собой словарь с информацией о пришельце. Например, следующий код строит список из трех пришельцев:

Сначала создаются три словаря, каждый из которых представляет отдельного пришельца. В точке ❶ каждый словарь заносится в список с именем aliens. Наконец, программа перебирает список и выводит каждого пришельца:

Конечно, в реалистичном примере будут использоваться более трех пришельцев, которые будут генерироваться автоматически. В следующем примере функция range() создает флот из 30 пришельцев:

В начале примера список для хранения всех пришельцев, которые будут созданы, пуст. В точке ❶ функция range() возвращает множество чисел, которое просто сообщает Python, сколько раз должен повторяться цикл. При каждом выполнении цикла создается новый пришелец ❷, который затем добавляется в список aliens ❸. В точке ❹ сегмент используется для вывода первых пяти пришельцев, а в точке ❺ выводится длина списка (для демонстрации того, что программа действительно сгенерировала весь флот из 30 пришельцев):

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

Как работать с таким множеством? Представьте, что в этой игре некоторые пришельцы изменяют цвет и начинают двигаться быстрее. Когда приходит время смены цветов, мы можем воспользоваться циклом for и командой if для изменения цвета. Например, чтобы превратить первых трех пришельцев в желтых, двигающихся со средней скоростью и приносящих игроку по 10 очков, можно действовать так:

Чтобы изменить первых трех пришельцев, мы перебираем элементы сегмента, включающего только первых трех пришельцев. В данный момент все пришельцы зеленые (‘green’), но так будет не всегда, поэтому мы пишем команду if, которая гарантирует, что изменяться будут только зеленые пришельцы. Если пришелец зеленый, то его цвет меняется на желтый (‘yellow’), скорость — на среднюю (‘medium’), а награда увеличивается до 10 очков:

Цикл можно расширить, добавив блок elif для превращения желтых пришельцев в красных — быстрых и приносящих игроку по 15 очков. Мы не станем приводить весь код, а цикл выглядит так:

Решение с хранением словарей в списке достаточно часто встречается тогда, когда каждый словарь содержит разные атрибуты одного объекта. Например, вы можете создать словарь для каждого пользователя сайта, как это было сделано в программе user.py на с. 114, и сохранить отдельные словари в списке с именем users. Все словари в списке должны иметь одинаковую структуру, чтобы вы могли перебрать список и выполнить с каждым объектом словаря одни и те же операции.

Список в словаре

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

В следующем примере для каждой пиццы сохраняются два вида информации: основа и список топпингов. Список топпингов представляет собой значение, связанное с ключом ‘toppings’. Чтобы использовать элементы в списке, нужно указать имя словаря и ключ ‘toppings’, как и для любого другого значения в словаре. Вместо одного значения будет получен список топпингов:

Работа начинается в точке ❶ со словаря с информацией о заказанной пицце. С ключом в словаре ‘crust’ связано строковое значение ‘thick’. С другим ключом ‘toppings’ связано значение-список, в котором хранятся все заказанные топпинги. В точке ❷ выводится описание заказа перед созданием пиццы. Если вам нужно разбить длинную строку в вызове print(), выберите точку для разбиения выводимой строки и закончите строку кавычкой. Снабдите следующую строку отступом, добавьте открывающую кавычку и продолжите строку. Python автоматически объединяет все строки, обнаруженные в круглых скобках. Для вывода дополнений пишется цикл for ❸. Чтобы вывести список топпингов, мы используем ключ ‘toppings’, а Python берет список топпингов из словаря.

Следующее сообщение описывает пиццу, которую мы собираемся создать:

Вложение списка в словарь может применяться каждый раз, когда с одним ключом словаря должно быть связано более одного значения. Если бы в предыдущем примере с языками программирования ответы сохранялись в списке, один участник опроса мог бы выбрать сразу несколько любимых языков. При переборе словаря значение, связанное с каждым человеком, представляло бы собой список языков (вместо одного языка). В цикле for словаря создается другой цикл для перебора списка языков, связанных с каждым участником:

Вы видите в точке ❶, что значение, связанное с каждым именем, теперь представляет собой список. У некоторых участников один любимый язык программирования, у других таких языков несколько. При переборе словаря в точке ❷ переменная с именем languages используется для хранения каждого значения из словаря, потому что мы знаем, что каждое значение будет представлять собой список. В основном цикле по элементам словаря другой цикл ❸ перебирает элементы списка любимых языков каждого участника. Теперь каждый участник опроса может указать сколько угодно любимых языков программирования:

Чтобы дополнительно усовершенствовать программу, включите в начало цикла for словаря команду if для проверки того, выбрал ли данный участник более одного языка программирования (проверка основана на значении len(languages)). Если у участника только один любимый язык, текст сообщения изменяется для единственного числа (например, «Sarah’s favorite language is C»).

Для Хаброжителей скидка 25% по купону — Python

По факту оплаты бумажной версии книги на e-mail высылается электронная книга.

Источник

Изучаем Python

Ускоренный курс.

Мэтиз Эрик «Изучаем Python. Программирование игр, визуализация данных, веб-приложения» Питер, 2017 год, 496 стр. (7,85 мб. pdf+5,25 мб. epub)

Изучаем Python быстро и эффективно — такова цель представленной книги. Автор поставил две задачи — представить материал так, чтобы его могли изучать люди любого возраста которые прежде не занимались программированием. И второе — ускоренное овладение базовыми навыками посредством создания простых программ иллюстрирующих работу кода, знакомящих с типами данных, командами, функциями и т.п.

В первой части книги проводится изучение основ языка Python, начиная с подготовки среды программирования и последовательного изучения всех типов данных (переменные, числа, строки, циклы, списки, кортежи, словари, классы и др.), где по итогам каждой главы вам будет предложено выполнить упражнения для закрепления изученного материала. Если вы успешно изучите материал первой части, то сможете самостоятельно писать собственные несложные вычислительные приложения и тесты для собственного кода.

Вторая часть книги, это три практических проекта где понадобятся все ваши полученные знания: 1- игра «стрелялка» с разными уровнями сложности, 2 — web-приложение на Django (фреймворк для веб-приложений на Python) и 3 — проект по визуализации данных (узнаете о модулях CSV и JSON). Для начинающих программистов.
ISBN 978-5-496-02305-4

Часть I. Основы 16

Глава 1. Начало работы 17
Подготовка среды программирования 17
Решение проблем с установкой 28
Запуск программ Python в терминале 29
Итоги 31

Глава 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

Глава 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
Итоги 297

Глава 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

Приложение В. Помощь и поддержка 478
Первые шаги 478
Поиск в Интернете 479
IRC (Internet Relay Chat) 481

Приложение Г. Git и контроль версий 483
Установка Git 483
Создание проекта 484
Игнорирование файлов 484
Инициализация репозитория 485
Проверка статуса 485
Добавление файлов в репозиторий 486
Закрепление 486
Просмотр журнала 487
Второе закрепление 487
Отмена изменений 488
Извлечение предыдущих закреплений 489
Удаление репозитория 490
Послесловие 492

Источник

Понравилась статья? Поделиться с друзьями:

Не пропустите наши новые статьи:

  • мэд дэнас для чего программа
  • мышь странно себя ведет windows 10
  • мышь сама двигается по экрану windows 10
  • мышь перестала реагировать на движение windows 10
  • мышь перемещается рывками windows 10

  • Операционные системы и программное обеспечение
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest
    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии