Изучаем Python: программирование игр, визуализация данных, веб-приложения. 3-е изд. - Эрик Мэтиз - E-Book

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

Эрик Мэтиз

0,0
10,49 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.
Mehr erfahren.
Beschreibung

«Изучаем Python» — это самое популярное в мире руководство по языку Python. Вы сможете не только максимально быстро его освоить, но и научитесь писать программы, устранять ошибки и создавать работающие приложения. В первой части книги вы познакомитесь с основными концепциями программирования, такими как переменные, списки, классы и циклы, а простые упражнения приучат вас к шаблонам чистого кода. Вы узнаете, как делать программы интерактивными и как протестировать код, прежде чем добавлять в проект. Во второй части вы примените новые знания на практике и создадите три проекта: аркадную игру в стиле Space Invaders, визуализацию данных с удобными библиотеками Python и простое веб-приложение, которое можно быстро развернуть онлайн. Работая с книгой, вы научитесь: ∙ Использовать мощные библиотеки и инструменты Python: Pygame, Matplotlib, Plotly и Django ∙ Создавать 2D-игры разной сложности, которыми можно управлять с клавиатуры и мыши ∙ Создавать интерактивную визуализацию данных ∙ Разрабатывать, настраивать и развертывать веб-приложения ∙ Разбираться с багами и ошибками Новое издание было тщательно переработано и отражает последние достижения в практиках программирования на Python. Первая часть книги была дополнена новой информацией о f-строках, константах и управлении данными. Во второй части был обновлен код проектов. Структура проектов и код стали более чистыми и понятными, теперь они используют всю мощь популярных библиотек и инструментов, таких как Plotly и Django. (Полный список обновлений можно найти в предисловии.) Если вы подумываете «А не заняться ли мне программированием?», то эта книга — идеальный старт. Не нужно больше ждать! Погнали!

Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:

EPUB
MOBI

Seitenzahl: 635

Veröffentlichungsjahr: 2023

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Эрик Мэтиз
Изучаем Python: программирование игр, визуализация данных, веб-приложения. 3-е изд.

Переводчики Е. Матвеев, Е. Матвеев

Эрик Мэтиз

Изучаем Python: программирование игр, визуализация данных, веб-приложения. 3-е изд.. — СПб.: Питер, 2022.

ISBN 978-5-4461-1528-0

© ООО Издательство "Питер", 2022

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

Оглавление

Отзывы о книге
Об авторе
О научном редакторе
Предисловие к третьему изданию
Благодарности
Введение
Для кого написана эта книга?
Чему эта книга вас научит?
Онлайн-ресурсы
Почему именно Python?
От издательства
Часть I. Основы
1. Первые шаги
Подготовка среды программирования
Python в разных операционных системах
Запуск программы Hello World
Решение проблем с установкой
Запуск программ Python в терминале
Итоги
2. Переменные и простые типы данных
Что происходит при запуске hello_world.py
Переменные
Строки
Числа
Комментарии
Дзен Python
Итоги
3. Списки
Что такое список?
Индексы начинаются с 0, а не с 1
Изменение, добавление и удаление элементов
Упорядочение списка
Ошибки индексирования при работе со списками
Итоги
4. Работа со списками
Перебор всего списка
Предотвращение ошибок с отступами
Создание числовых списков
Работа с частью списка
Кортежи
Стиль программирования
Итоги
5. Команды if
Проверка условий
Команды if
Использование команд if со списками
Оформление команд if
Итоги
6. Словари
Простой словарь
Работа со словарями
Перебор словаря
Вложение
Итоги
7. Ввод данных и циклы while
Как работает функция input()
Циклы while
Использование цикла while со списками и словарями
Итоги
8. Функции
Определение функции
Передача аргументов
Возвращаемое значение
Передача списка
Хранение функций в модулях
Стилевое оформление функций
Итоги
9. Классы
Создание и использование класса
Работа с классами и экземплярами
Наследование
Импортирование классов
Стандартная библиотека Python
Оформление классов
Итоги
10. Файлы и исключения
Чтение из файла
Запись в файл
Исключения
Сохранение данных
Итоги
11. Тестирование
Тестирование функции
Тестирование класса
Итоги
Часть II. Проекты
Программирование игры на языке Python
Визуализация данных
Веб-приложения
Проект 1. Игра «Инопланетное вторжение»
12. Инопланетное вторжение
Планирование проекта
Установка Pygame
Создание проекта игры
Добавление изображения корабля
Рефакторинг: методы _check_events() и _update_screen()
Управление кораблем
В двух словах
Стрельба
Итоги
13. Осторожно, пришельцы!
Анализ проекта
Создание пришельца
Построение флота
Перемещение флота
Уничтожение пришельцев
Завершение игры
Определение исполняемых частей игры
Итоги
14. Ведение счета
Добавление кнопки Play
Повышение сложности
Подсчет очков
Итоги
Проект 2. Визуализация данных
15. Генерирование данных
Установка matplotlib
Построение простого графика
Случайное блуждание
Моделирование бросков кубиков в Plotly
Итоги
16. Загрузка данных
Формат CSV
Построение карт с глобальными наборами данных: формат JSON
Итоги
17. Работа с API
Использование API веб-приложений
Итоги
Проект 3. Веб-приложения
18. Знакомство с Django
Подготовка к созданию проекта
Начало работы над приложением
Построение других страниц
Итоги
19. Учетные записи пользователей
Редактирование данных
Создание учетных записей пользователей
Редактирование данных
Итоги
20. Оформление и развертывание приложения
Оформление приложения Learning Log
Развертывание Learning Log
Итоги
Послесловие
Приложения
А. Установка Python и диагностика проблем
Python в Windows
Python в macOS
Python в системе Linux
Ключевые слова Python и встроенные функции
Б. Текстовые редакторы
Настройка Sublime Text
Другие текстовые редакторы и IDE
В. Помощь и поддержка
Первые шаги
Поиск в интернете
IRC (Internet Relay Chat)
Slack
Discord
Г. Git и контроль версий
Установка Git
Создание проекта
Игнорирование файлов
Инициализация репозитория
Проверка статуса
Добавление файлов в репозиторий
Закрепление
Просмотр журнала
Второе закрепление
Отмена изменений
Извлечение предыдущих закреплений
Удаление репозитория

Отзывы о книге

Интересно наблюдать за тем, как No Starch Press создает будущую классику, которая по праву может занять место рядом с более традиционными книгами по программированию. Эта книга — одна из них.

Грег Лейден (Greg Laden), ScienceBlogs

Автор рассматривает довольно сложные проекты и излагает материал в последовательной, логичной и приятной манере, которая привлекает читателя к теме.

Full Circle Magazine

Хорошая подача материала с доступными объяснениями фрагментов кода. Книга ведет читателя вперед шаг за шагом, строя все более сложный код и объясняя все происходящее на этом пути.

FlickThrough Reviews

Изучение Python с этой книгой оставило в высшей степени положительные впечатления! Отличный вариант, если вы только начинаете изучать Python.

Mikke Goes Coding

Об авторе

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

О научном редакторе

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

Моему отцу, который никогда не жалел времени, чтобы ответить на мои вопросы по программированию, и Эверу, который только начинает задавать мне свои вопросы

Предисловие к третьему изданию

Предыдущее издание «Изучаем Python: программирование игр, визуализация данных, веб-приложения» получило множество положительных отзывов. Тираж книги составил более 500 тысяч экземпляров, включая переводы на 8 языков. Я получал письма и сообщения как от читателей, которым было всего десять лет, так и от пенсионеров, желающих освоить программирование для собственного удовольствия. Материал книги используется для обучения в школах и колледжах. Студенты, которым приходится иметь дело с более сложными учебниками, используют мою книгу как дополнительный источник для своих занятий; по их мнению, книга является хорошим подспорьем в учебе. Разные люди используют ее для повышения своей квалификации и для работы над параллельными проектами. Короче говоря, книга используется для самых разнообразных целей — как я и надеялся.

Я был очень рад тому, что мне представилась возможность поработать над следующим изданием. Python — достаточно зрелый язык, но он продолжает развиваться, как и все языки. При переработке материала книги я старался сделать его более доступным и компактным. Необходимости в изучении Python 2 больше нет, поэтому новое издание полностью сосредоточено на Python 3. Установка многих пакетов Python упростилась, поэтому упростились и инструкции по установке и настройке. Я добавил несколько тем, которые, на мой взгляд, будут полезны читателям, обновил некоторые разделы и представил новые, более простые средства для решения некоторых задач в языке Python. Также были доработаны разделы, в которых некоторые аспекты языка были представлены недостаточно точно. Все проекты были полностью обновлены; в них используются только популярные библиотеки с качественным сопровождением, которыми вы можете пользоваться при построении собственных проектов.

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

• В главе 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 для контроля версий.

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

Благодарности

Эта книга никогда бы не появилась на свет без великолепных, чрезвычайно профессиональных сотрудников издательства No Starch Press. Билл Поллок (Bill Pollock) предложил мне написать вводный учебник, и я глубоко благодарен ему за это предложение. Тайлер Ортман (Tyler Ortman) помог привести в порядок мои идеи на ранней стадии подготовки чернового варианта. Лиз Чедвик (Liz Chadwick) и Лесли Шен (Leslie Shen) предоставили бесценные отзывы на исходные варианты каждой главы, а Энн Мэри Уокер (Anne Marie Walker) помогла прояснить многие части книги. Райли Хоффман (Riley Hoffman) отвечал на все вопросы, которые возникали у меня в процессе создания книги, и терпеливо превращал мою работу в прекрасный завершенный продукт.

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

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

Введение

У каждого программиста найдется своя история о том, как он написал свою первую программу. Я начал изучать программирование еще в детстве, когда мой отец работал на Digital Equipment Corporation, одну из ведущих компаний современной эры вычислительной техники. Я написал свою первую программу на компьютере, который был собран моим отцом из набора компонентов в подвале дома. Компьютер представлял собой системную плату (без корпуса), подключенную к клавиатуре, а в качестве монитора использовалась простейшая электронно-лучевая трубка. Моей первой программой стала игра по отгадыванию чисел, которая выглядела примерно так:

Я загадал число! Попробуйте отгадать мое число: 25

Слишком мало! Следующая попытка: 50

Слишком много! Следующая попытка: 42

Верно! Хотите сыграть снова? (да/нет) нет

Спасибо за игру!

Никогда не забуду, как это было здорово — моя семья играла в написанную мной игру, и все работало точно так, как я задумал.

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

Для кого написана эта книга?

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

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

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

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

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

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

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

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

Онлайн-ресурсы

Все информационные ресурсы, прилагаемые к книге, доступны в интернете по адресу https://nostarch.com/pythoncrashcourse2e/ или http://ehmatthes.github.io/pcc_2e/:

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

• Обновления. Python, как и все языки, постоянно развивается. Я отслеживаю наборы обновлений, так что если что-то не работает — обращайтесь к этому ресурсу и проверьте, не изменилось ли что-то.

• Решения к упражнениям. Не жалейте времени на самостоятельное решение задач из разделов «Упражнения». Но если вы оказались в тупике и не знаете, что делать, ответы к большинству упражнений доступны в интернете.

• Памятки. Полный набор памяток, содержащих краткие сводки по основным концепциям.

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

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

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

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

Python — замечательный язык, так давайте браться за дело!

От издательства

Ваши замечания, предложения, вопросы отправляйте по адресу [email protected] (издательство «Питер», компьютерная редакция).

Мы будем рады узнать ваше мнение!

На веб-сайте издательства www.piter.com вы найдете подробную информацию о наших книгах.

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

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

В главе 1 вы установите Python на свой компьютер и запустите свою первую программу, которая выводит на экран сообщение Helloworld!.

В главе 2 вы научитесь хранить информацию в переменных, работать с текстовыми и числовыми данными.

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

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

Глава 6 показывает, как использовать словари Python, связывающие разные виды информации. Словари, как и списки, могут содержать столько информации, сколько вы захотите в них поместить.

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

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

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

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

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

1. Первые шаги

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

Подготовка среды программирования

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

Версии Python

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

Некоторые старые проекты Python продолжают использовать Python 2, но вам стоит остановиться на Python 3. Если в вашей системе установлена только версия Python 2, скорее всего, она нужна для поддержки других программ, необходимых для вашей системы. Мы оставим эту установку без изменений и позаботимся о том, чтобы в системе была более свежая версия для работы.

Выполнение фрагментов кода Python

Интерпретатор Python может выполняться в терминальном окне и позволяет опробовать фрагменты кода Python без сохранения и запуска всей программы.

В этой книге встречаются фрагменты следующего вида:

❶ >>> print("Hello Python interpreter!")

  Hello Python interpreter!

Приглашение >>> означает, что используется окно терминала, а жирным шрифтом выделена команда, которую вы вводите и выполняете нажатием клавиши Enter. Большинство примеров в книге представляет небольшие самостоятельные программы, которые запускаются из редактора, а не в терминале, потому что именно так вы будете писать большую часть своего кода. Но в некоторых случаях базовые концепции будут продемонстрированы серией фрагментов в терминальном сеансе Python, чтобы более эффективно показать отдельные концепции. Каждый раз, когда в листинге встречаются три угловые скобки , это означает, что перед вами вывод терминального сеанса. Вскоре мы опробуем возможность программирования в интерпретаторе для вашей системы.

Также текстовый редактор будет использоваться для создания простой программы Hello World!. В мире программирования издавна принято начинать освоение нового языка с программы, выводящей на экран сообщение Hello world! — считается, что это принесет удачу. Даже такая простая программа выполняет вполне конкретную функцию. Если она запускается в вашей системе, то и любая программа, которую вы напишете на Python, тоже должна запускаться нормально.

О текстовом редакторе Sublime Text

Sublime Text — простой текстовый редактор, который устанавливается во всех основных операционных системах. Sublime Text позволяет запускать практически любые программы прямо из редактора (вместо терминала), а код выполняется в терминальном сеансе, встроенном в окно Sublime Text, что упрощает просмотр вывода.

Редактор Sublime Text особенно удобен для начинающих, но многие профессиональные программисты также пользуются им. Если вы привыкнете к нему во время изучения Python, возможно, вы будете пользоваться им и при переходе на более крупные и сложные проекты. Политика лицензирования Sublime Text более чем либеральна: вы можете бесплатно пользоваться редактором сколь угодно долго, но автор требует приобрести лицензию, если программа вам понравилась и вы собираетесь использовать ее в будущем.

В приложении Б приведена информация о других вариантах; возможно, вам стоит бегло просмотреть его. Если вы хотите быстро перейти к программированию, используйте Sublime Text на первых порах и рассмотрите переход на другие редакторы, когда у вас появится некоторый опыт программирования. В этой главе я опишу процесс установки Sublime Text для вашей операционной системы.

Python в разных операционных системах

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

В этом разделе вы узнаете, как подготовить Python к работе в вашей системе. Сначала вы проверите, установлена ли новая версия Python в вашей системе, и если нет — установите ее. Затем вы установите Sublime Text. Процедура состоит всего из двух шагов, отличающихся для разных операционных систем.

Затем вы установите программу Hello World и устраните любые неполадки. Этот процесс будет описан для всех операционных систем, так что в итоге в вашем распоряжении появится простая и удобная среда программирования на Python.

Python в системе Windows

Windows далеко не всегда включает поддержку Python. Скорее всего, вам придется загрузить и установить Python, а затем загрузить и установить текстовый редактор Sublime Text.

Установка Python

Для начала проверьте, установлена ли поддержка Python в вашей системе. Откройте окно командной строки: введите command в меню Пуск или щелкните на рабочем столе с нажатой клавишей Shift и выберите команду Opencommandwindowhere. Введите в окне командной строки команду python в нижнем регистре. Если на экране появится приглашение >>>, значит, в системе установлена поддержка Python. Впрочем, скорее всего, вместо приглашения появится сообщение об ошибке, в котором говорится, что команда python не опознана системой.

Рис. 1.1. Не забудьте установить флажок Add Python to PATH

В таком случае (а также если будет выведена версия Python менее 3.6) загрузите программу установки Python для Windows. Откройте страницу https://python.org/ и наведите указатель мыши на ссылку Downloads. Появляется кнопка для загрузки новейшей версии Python. Щелкните на кнопке, которая запускает автоматическую загрузку правильного установочного пакета для вашей системы. После того как загрузка файла будет завершена, запустите программу установки. Не забудьте установить флажок AddPythontoPATH; это упростит правильную настройку системы. На рис. 1.1 изображено окно мастера установки с установленным флажком.

Запуск Python в терминальном сеансе

Откройте окно командной строки и введите команду python в нижнем регистре. Если на экране появится приглашение Python (>>>), значит, система Windows обнаружила установленную версию Python:

C:\> python

Python 3.7.2 (v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64 bit

(AMD64)] on win32

Type "help", "copyright", "credits" or "license" for more information.

>>>

ПРИМЕЧАНИЕ Если вы не увидите этот (или похожий) вывод, обращайтесь к более подробным инструкциям по установке в приложении А.

Введите в сеансе Python следующую строку и убедитесь в том, что на экране появился вывод HelloPythoninterpreter!

>>> print("Hello Python interpreter!")

Hello Python interpreter!

>>>

Каждый раз, когда вы захотите выполнить фрагмент кода Python, откройте окно командной строки и запустите терминальный сеанс Python. Чтобы закрыть терминальный сеанс, нажмите Сtrl+Z, а затем Enter или введите команду exit().

Установка Sublime Text

Программу установки Sublime Text можно загрузить по адресу https://sublimetext.com/. Щелкните на ссылке загрузки и найдите программу установки для Windows. После того как программа установки будет загружена, запустите ее и подтвердите все настройки по умолчанию.

Python в системе macOS

В большинстве систем macOS поддержка Python уже установлена, но скорее всего, это будет какая-нибудь устаревшая версия, которую не стоит использовать для обу­чения. В этом разделе мы установим новейшую версию Python, а затем текстовый редактор Sublime Text и убедимся в том, что он правильно настроен.

Проверка наличия Python 3 в системе

Откройте терминальное окно (команда ApplicationsUtilitiesTerminal). Также можно нажать Command+пробел, ввести terminal и нажать Enter. Чтобы проверить, установлена ли поддержка Python в вашей системе, введите команду python (со строчной буквы p). На экране появится информация о том, какая версия Python у вас установлена, и приглашение >>>, в котором можно вводить команды Python:

$ python

Python 2.7.15 (default, Aug 17 2018, 22:39:05)

[GCC 4.2.1 Compatible Apple LLVM 9.1.0 (clang-902.0.39.2)] on darwin

Type "help", "copyright", "credits", or "license" for more information.

>>>

Этот вывод сообщает, что Python 2.7.15 в настоящее время является версией Python по умолчанию, установленной на данном компьютере. Нажмите Ctrl+D или введите exit(), чтобы выйти из приглашения Python и вернуться к приглашению терминала.

Чтобы проверить наличие Python 3, попробуйте ввести команду python3. На экране может появиться сообщение об ошибке, но если из вывода следует, что в системе установлена версия Python 3.6 или более поздняя версия, вы можете перейти к разделу «Запуск Python в терминальном сеансе» этой главы. Если Python 3 не устанавливается по умолчанию, ее необходимо установить вручную. Каждый раз, когда в книге встречается команда python, вводите вместо нее команду python3, чтобы при запуске использовалась версия Python 3, а не Python 2; различия между этими версиями достаточно серьезны, чтобы при выполнении кода в книге с Python 2 могли возникнуть проблемы.

Если команда выводит любой номер версии, предшествующий 3.6, выполните инструкции в следующем разделе для установки новейшей версии.

Установка новейшей версии Python

Программа установки Python доступна на сайте https://python.org/. Наведите указатель мыши на ссылку Downloads. Появляется кнопка для загрузки новейшей версии Python. Щелкните на кнопке, которая запускает автоматическую загрузку правильного установочного пакета для вашей системы. После того как загрузка файла будет завершена, запустите программу установки.

Когда установка будет завершена, введите следующую команду в приглашении терминала:

$ python3 --version

Python 3.7.2

Если появится похожий результат, значит, все готово к работе с Python. Каждый раз, когда в книге встречается команда python, вводите вместо нее команду python3.

Запуск Python в терминальном сеансе

Для выполнения фрагментов кода Python можно открыть терминальное окно и ввести команду python3. Введите в терминальном сеансе следующую строку:

>>> print("Hello Python interpreter!")

Hello Python interpreter!

>>>

Сообщение выводится прямо в текущем терминальном окне. Вспомните, что интерпретатор Python закрывается комбинацией клавиш Сtrl+D или командой exit().

Установка Sublime Text

Чтобы установить редактор Sublime Text, необходимо загрузить программу установки по адресу https://sublimetext.com/. Щелкните на ссылке Download и найдите программу установки для macOS. После того как программа установки будет загружена, откройте ее и перетащите значок Sublime Text в папку Applications.

Python в системе Linux

Системы семейства Linux ориентированы на программистов, поэтому поддержка Python уже установлена на большинстве компьютеров Linux. Люди, которые занимаются разработкой и сопровождением Linux, ожидают, что в какой-то момент вы займетесь программированием, и всячески способствуют этому. По этой причине для перехода к программированию вам почти ничего не придется устанавливать, а количество необходимых настроек будет минимальным.

Проверка версии Python

Откройте терминальное окно, запустив приложение Terminal в вашей системе (в Ubuntu нажмите клавиши Ctrl+Alt+T). Чтобы проверить, какая версия Python установлена в вашей системе, введите команду python3 (со строчной буквы p). Если Python присутствует в системе, эта команда запустит интерпретатор Python. На экране появится информация о том, какая версия Python у вас установлена, и приглашение >>>, в котором можно вводить команды Python:

$ python3

Python 3.7.2 (default, Dec 27 2018, 04:01:51)

[GCC 7.3.0] on linux

Type "help", "copyright", "credits" or "license" for more information.

>>>

Этот вывод сообщает, что Python 3.7.2 в настоящее время является версией Python по умолчанию, установленной на данном компьютере. Нажмите Ctrl+D или введите exit(), чтобы выйти из приглашения Python и вернуться к приглашению терминала. Каждый раз, когда в книге встречается команда python, вводите вместо нее команду python3.

Для запуска кода из книги необходима версия Python 3.6. Если в системе установлена более ранняя версия, обращайтесь к подробным инструкциям по установке в приложении А.

Запуск Python в терминальном сеансе

Для выполнения фрагментов кода Python можно открыть терминальное окно и ввести команду python3, как мы поступили при проверке версии. Сделайте то же самое, но на этот раз введите в терминальном сеансе следующую строку:

>>> print("Hello Python interpreter!")

Hello Python interpreter!

>>>

Сообщение выводится прямо в текущем терминальном окне. Вспомните, что интерпретатор Python закрывается комбинацией клавиш Сtrl+D или командой exit().

Установка Sublime Text

В системе Linux редактор Sublime Text устанавливается из Ubuntu Software Center. Щелкните на значке UbuntuSoftware в меню и найдите вариант SublimeText. Щелк­ните на нем, чтобы установить, а потом запустить программу.

Запуск программы Hello World

После того как в вашей системе будут установлены последние версии Python и Sublime Text, все почти готово к запуску вашей первой программы Python, написанной в текстовом редакторе. Но перед этим необходимо убедиться в том, что в Sublime Text настроена правильная версия Python для вашей системы. После этого вы сможете написать программу Hello World! и запустить ее.

Настройка Sublime Text для использования правильной версии Python

Если команда python в вашей системе запускает Python 3, ничего настраивать не нужно и вы можете просто перейти к следующему разделу. Если же вы используете команду python3, необходимо настроить Sublime Text для использования правильной версии Python при запуске программ.

Щелкните на значке SublimeText или проведите поиск SublimeText в строке поиска вашей системы и запустите редактор. Выполните команду ToolsBuildSystemNewBuildSystem, которая откроет новый конфигурационный файл. Удалите текущее содержимое и введите следующий текст:

Python3.sublime-build

{

    "cmd": ["python3", "-u", "$file"],

}

Он приказывает Sublime Text использовать команду python3 для запуска программных файлов Python. Сохраните этот файл под именем Python3.sublime-build в каталоге по умолчанию, который открывает Sublime Text при выполнении команды Save.

Запуск hello_world.py

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

Откройте Sublime Text и сохраните пустой файл Python (FileSaveAs) с именем hello_world.py в папке python_work. Расширение .py сообщает Sublime Text, что код в файле написан на языке Python; эта информация помогает редактору запустить программу и правильно выделить цветом элементы синтаксиса.

После того как файл будет сохранен, введите следующую строку в текстовом редакторе:

hello_world.py

print("Hello Python world!")

Если команда python работает в вашей системе, программу можно запустить коман­дой меню ToolsBuild или комбинацией клавиш Ctrl+B (Command+B в macOS). Если вы настроили Sublime Text на использование другой команды вместо python, выберите команду меню ToolsBuildSystem, а затем Python3. В дальнейшем вы сможете запускать свои программы командой ToolsBuild или комбинацией клавиш Ctrl+B (или Command+B).

В нижней части окна Sublime Text должно отображаться терминальное окно со следующим текстом:

Hello Python world!

[Finished in 0.1s]

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

Решение проблем с установкой

Если вам так и не удалось запустить программу hello_world.py, возможно, вам помогут следующие полезные советы (кстати, они могут пригодиться для решения любых проблем в программах).

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

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

• Начните заново. Вероятно, ничего переустанавливать не придется, но попробуйте удалить файл hello_world.py и создать его с нуля.

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

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

• Инструкции по настройке среды программирования, приведенные в этой главе, также доступны по адресу https://nostarch.com/pythoncrashcourse2e/. Возможно, сетевая версия будет более удобной для вас.

• Обратитесь за помощью в интернет. В приложении В перечислены некоторые ресурсы (форумы, чаты и т.д.), на которых вы сможете проконсультироваться у людей, уже сталкивавшихся с вашей проблемой.

Не стесняйтесь обращаться к опытным программистам. Любой программист в какой-то момент своей жизни заходил в тупик; многие программисты охотно помогут вам правильно настроить вашу систему. Если вы сможете четко объяснить, что вы хотите сделать, что уже пытались и какие результаты получили, скорее всего, кто-нибудь вам поможет. Как упоминалось во введении, сообщество Python доброжелательно относится к новичкам.

Python должен нормально работать на любом современном компьютере, и если у вас все же возникли проблемы — обращайтесь за помощью. На первых порах проблемы могут быть весьма неприятными, но с ними стоит разобраться. Когда программа hello_world.py заработает, вы сможете приступить к изучению Python, а ваша работа станет намного более интересной и принесет больше удовольствия.

Запуск программ Python в терминале

Большинство программ, написанных вами в текстовом редакторе, будут запускаться прямо из редактора. Тем не менее иногда бывает полезно запускать программы из терминала — например, если вы хотите просто выполнить готовую программу, не открывая ее для редактирования.

Это можно сделать в любой системе с установленной поддержкой Python; необходимо лишь знать путь к каталогу, в котором хранится файл программы. Приведенные ниже примеры предполагают, что вы сохранили файл hello_world.py в папке python_work на рабочем столе.

В Windows

Команда cd (Change Directory) используется для перемещения по файловой системе в окне командной строки. Команда dir (DIRectory) выводит список всех файлов в текущем каталоге.

Откройте новое терминальное окно и введите следующие команды для запуска программы hello_world.py:

❶ C:\> cd Desktop\python_work

❷ C:\Desktop\python_work> dir

    hello_world.py

❸ C:\Desktop\python_work> python hello_world.py

    Hello Python world!

Команда cd используется для перехода к папке python_work, находящейся в папке Desktop. Затем команда dir проверяет, что файл hello_world.py действительно находится в этой папке . Далее файл запускается командой pythonhello_world.py.

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

В macOS и Linux

Запуск программы Python в терминальном сеансе в системах Linux и macOS осуществляется одинаково. Команда cd (Change Directory) используется для перемещения по файловой системе в терминальном сеансе. Команда ls (LiSt) выводит список всех нескрытых файлов в текущем каталоге.

Откройте новое терминальное окно и введите следующие команды для запуска программы hello_world.py:

❶ ~$ cd Desktop/python_work/

❷ ~/Desktop/python_work$ ls

    hello_world.py

❸ ~/Desktop/python_work$ python hello_world.py

    Hello Python world!

Команда cd используется для перехода к папке python_work, находящейся в папке Desktop. Затем команда ls проверяет, что файл hello_world.py действительно находится в этой папке . Далее файл запускается командой pythonhello_world.py.

Как видите, все просто. По сути, вы просто используете команду python (или python3) для запуска программ Python.

Упражнения

Упражнения этой главы в основном направлены на самостоятельный поиск информации. Начиная с главы 2, упражнения будут ориентированы на решение задач по изложенному материалу.

1.1. python.org: изучите домашнюю страницу Python (https://python.org/) и найдите темы, которые вас заинтересуют. Со временем вы лучше узнаете Python, и другие разделы этого сайта покажутся вам более полезными.

1.2. Опечатки в Hello World: откройте только что созданный файл hello_world.py. Сделайте где-нибудь намеренную опечатку и снова запустите программу. Удастся ли вам сделать опечатку, которая приводит к ошибке? Поймете ли вы смысл сообщения об ошибке? Удастся ли вам сделать опечатку, которая не приводит к ошибке? Как вы думаете, почему на этот раз выполнение обходится без ошибки?

1.3. Бесконечное мастерство: если бы вы были программистом с неограниченными возможностями, за какой проект вы бы взялись? Вы сейчас учитесь программировать. Если у вас имеется ясное представление о конечной цели, вы сможете немедленно применить свои новые навыки на практике; попробуйте набросать общие описания тех программ, над которыми вам хотелось бы поработать. Заведите «блокнот идей», к которому вы сможете обращаться каждый раз, когда собираетесь начать новый проект. Выделите пару минут и составьте описания трех программ, которые вам хотелось бы создать.

Итоги

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

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