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

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


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

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

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

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

Введение
У каждого программиста найдется своя история о том, как он написал свою пер- вую программу. Я начал изучать программирование еще в детстве, когда мой отец работал на Digital Equipment Corporation, одну из ведущих компаний современной эры вычислительной техники. Я написал свою первую программу на компьютере, который был собран моим отцом из набора комплектующих в подвале дома. Ком- пьютер представлял собой системную плату (без корпуса), подключенную к кла- виатуре, а в качестве монитора использовалась простейшая электронно- лучевая трубка. Моей первой программой стала игра по отгадыванию чисел, которая вы- глядела примерно так:
Я загадал число! Попробуйте отгадать мое число: 25
Слишком мало! Следующая попытка: 50
Слишком много! Следующая попытка: 42
Верно! Хотите сыграть снова? (да/нет) нет
Спасибо за игру!
Никогда не забуду, как доволен я был, когда моя семья играла в написанную мной игру и все работало точно так, как я задумал.
Мои ранние переживания имели далеко идущие последствия. Очень приятно по- строить нечто, предназначенное для конкретной цели; нечто, успешно решающее свою задачу. Программы, которые я пишу сейчас, намного серьезнее моих детских попыток, но чувство удовлетворения, которое я ощущаю от вида работающей про- граммы, остается практически тем же.
Для кого написана эта книга?
Цель этой книги — как можно быстрее ввести читателя в курс дела, чтобы тот начал писать на Python работоспособные программы (игры, визуализации данных и веб-приложения), и одновременно заложить основу в области про- граммирования, которая пригодится ему на протяжении всей жизни. Книга написана для людей любого возраста, которые прежде никогда не программи- ровали на Python или вообще никогда не программировали. Если вы хотите быстро изучить азы программирования, чтобы сосредоточиться на интересных проектах, а также проверить свое понимание новых концепций на содержа- тельных задачах — эта книга для вас. Книга также прекрасно подходит для преподавателей, желающих предложить вводный курс программирования, основанный на проектах.

14 Введение
Чему эта книга вас научит?
Цель книги — сделать вас хорошим программистом вообще и хорошим программи- стом Python в частности. Процесс обучения будет эффективным, и вы приобретете много полезных навыков, так как я представлю основательное введение в общие концепции программирования. После того как вы перевернете последнюю стра- ницу, вы будете готовы к знакомству с более серьезными возможностями Python, а изучение вашего следующего языка программирования тоже упростится.
В первой части книги будут представлены базовые концепции программирования, которые необходимо знать для написания программ Python. Эти концепции ничем не отличаются от тех, которые рассматриваются в начале изучения почти любого языка программирования. Вы познакомитесь с разными видами данных и возмож- ностями хранения данных в списках и словарях. Вы научитесь создавать коллекции данных и эффективно работать с этими коллекциями. В частности, циклы while и if позволяют выполнять определенные фрагменты кода, если некоторое условие истинно, и выполнять другие фрагменты в противном случае — эти конструкции очень сильно помогают при автоматизации процессов.
Вы научитесь получать входные данные от пользователя, чтобы ваши программы стали интерактивными, и выполнять их до тех пор, пока пользователь остается ак- тивным. Также вы узнаете, как написать функции для многократного выполнения некоторых частей ваших программ, чтобы вы один раз программировали некоторое действие, а потом могли использовать его столько раз, сколько потребуется. За- тем эта концепция будет распространена на более сложное поведение с классами, что позволит даже относительно простым программам реагировать на множество разнообразных ситуаций. Вы научитесь писать программы, корректно обрабаты- вающие многие типичные ошибки. После знакомства с базовыми концепциями мы напишем несколько коротких программ для решения конкретных задач. На- конец, вы сделаете первые шаги на пути к программированию среднего уровня: вы научитесь писать тесты для своего кода, чтобы вы могли продолжать разработку программ, не беспокоясь о возможном внесении ошибок. Вся информация части I подготовит вас к более сложным и масштабным проектам.
В части II знания, полученные в части I, будут применены для построения трех про- ектов. Вы можете взяться за любые из этих проектов в том порядке, который лучше подходит для вас. В первом проекте (главы 12–14) будет создана игра-«стрелялка» в стиле классического хита Space Invaders, состоящая из многих уровней с нараста- ющей сложностью. После завершения этого проекта вы будете знать многое из того, что необходимо знать для разработки собственных 2D-игр.
Второй проект (главы 15–17) познакомит вас с визуализацией данных. Чтобы разобраться в огромных объемах доступной информации, специалисты по ана- лизу данных применяют различные средства визуализации. Вы будете работать с наборами данных, генерируемыми в программах; наборами данных, загружен- ными из сетевых источников; и наборами данных, которые загружаются вашей программой автоматически. После завершения этого проекта вы сможете писать программы, обрабатывающие большие наборы данных и строящие визуальные представления сохраненной информации.

Введение 15
В третьем проекте (главы 18–20) будет построено небольшое веб-приложение
Learning Log. Этот проект позволяет вести журнал новых идей и концепций, кото- рые вы узнали в ходе изучения конкретной темы. Пользователь приложения смо- жет вести разные журналы по разным темам, создавать учетные записи и начинать новые журналы. Вы также узнаете, как развернуть свой проект в Интернете, чтобы любой желающий мог работать с ним откуда угодно.
Почему именно Python?
Каждый год я задумываюсь над тем, продолжать ли мне работать на Python или же перейти на другой язык — вероятно, более новый в мире программирования. И все же я продолжаю работать на Python по многим причинам. Язык Python невероятно эффективен: ваши программы делают больше, чем многие другие языки, в мень- шем объеме кода. Синтаксис Python также позволяет писать «чистый» код. Ваш код будет легко читаться, у вас будет меньше проблем с отладкой и расширением программ по сравнению с другими языками.
Python используется для разных целей: для создания игр, построения веб- приложений, решений бизнес-задач и разработки внутренних инструментов для всевозможных интересных проектов. Python также широко применяется в научной области для теоретических исследований и решения прикладных задач.
Впрочем, одной из самых важных причин для использования Python для меня остается сообщество Python, состоящее из невероятно разных и благожелательных людей. Сообщество играет исключительно важную роль в программировании, по- тому что программирование не является сугубо индивидуальным делом. Многим из нас, даже самым опытным программистам, приходится обращаться за советом к коллегам, которые уже решали похожие задачи. Существование дружного, добро- желательного сообщества помогает решать задачи, и сообщество Python готово прийти на помощь людям, у которых Python является первым языком програм- мирования.
Python — замечательный язык, давайте же браться за дело!
От издательства
Ваши замечания, предложения, вопросы отправляйте по адресу электронной почты comp@piter .com
(издательство «Питер», компьютерная редакция).
Мы будем рады узнать ваше мнение!
На веб-сайте издательства http://www .piter .com вы найдете подробную информацию о наших книгах.

Ч а с т ь I
Основы
В части I этой книги представлены базовые концепции, необходимые для написания программ на языке Python . Многие из этих концепций встречаются во всех языках про- граммирования, поэтому они пригодятся вам на протяжении всей карьеры программиста .
В главе 1 вы установите Python на свой компьютер и запустите свою первую программу, которая выводит на экран сообщение Hello world! . В главе 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 2 и Python 3
Сейчас доступны две версии Python: Python 2 и более новая версия Python 3. Каж- дый язык программирования развивается с появлением новых идей и технологий, и разработчики Python неустанно трудятся над тем, чтобы сделать язык более мощным и гибким. Многие изменения имеют второстепенный характер и мало- заметны на первый взгляд, но в отдельных случаях код, написанный на Python 2, некорректно работает в системах с установленной поддержкой Python 3. В книге я буду указывать на существенные различия между Python 2 и Python 3, так что вы сможете следовать приведенным инструкциям независимо от используемой версии.
Если в вашей системе установлены обе версии или вы еще не установили Python, используйте Python 3. Если в вашей системе установлена только версия Python 2 и вы предпочитаете с ходу взяться за написание кода, не желая возиться с установ- кой, начните с Python 2. Но чем скорее вы перейдете на Python 3, тем лучше — все же полезнее использовать самую новую версию.
Выполнение фрагментов кода Python
В поставку Python входит интерпретатор, который выполняется в терминальном окне и позволяет опробовать фрагменты кода Python без сохранения и запуска всей программы.

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

>>> print("Hello Python interpreter!")
Hello Python interpreter!
Жирным шрифтом выделен текст, который вы вводите и выполняете нажатием клавиши Enter. Большинство примеров в книге представляет собой небольшие са- мостоятельные программы, которые запускаются из редактора, потому что именно так вы будете писать бульшую часть своего кода. Но в некоторых случаях базовые концепции будут проиллюстрированы серией фрагментов в терминальном сеансе
Python для более эффективной демонстрации отдельных концепций. Каждый раз, когда в листинге встречаются три угловые скобки , это означает, что перед вами вывод терминального сеанса. Вскоре мы опробуем возможность программирования в интерпретаторе для вашей системы.
Hello World!
В мире программирования издавна принято начинать освоение нового языка с про- граммы, выводящей на экран сообщение Hello world! — считается, что это приносит удачу.
На языке Python программа Hello World состоит всего из одной строки:
print("Hello world!")
Даже такая простая программа выполняет вполне конкретную функцию. Если она запускается в вашей системе, то и любая программа, которую вы напишете на Python, тоже должна запускаться нормально. О том, как написать эту программу для вашей конкретной системы, мы поговорим чуть ниже.
Python в разных операционных системах
Python является кросс-платформенным языком программирования; это означа- ет, что он работает во всех основных операционных системах. Любая программа на языке Python, написанная вами, должна выполняться на любом современном компьютере с установленной поддержкой Python. Впрочем, способы настройки
Python для разных операционных систем слегка отличаются.
В этом разделе вы узнаете, как подготовить Python к работе и запустить программу
Hello World в вашей системе. Сначала вы проверите, установлена ли поддержка
Python в вашей системе, и если нет — установите ее. Затем вы установите про- стой текстовый редактор и сохраните пустой файл Python с именем hello_world .
py
. Наконец, вы запустите программу Hello World и устраните любые неполадки.
Этот процесс будет описан для всех операционных систем, так что в итоге в вашем распоряжении появится простая и удобная среда программирования на Python.
Python в системе Linux
Системы семейства Linux ориентированы на программистов, поэтому поддержка
Python уже установлена на большинстве компьютеров Linux. Люди, которые

Подготовка среды программирования 19
занимаются разработкой и сопровождением Linux, ожидают, что в какой-то мо- мент вы займетесь программированием, и всячески способствуют этому. По этой причине для перехода к программированию вам почти ничего не придется уста- навливать, а количество необходимых настроек будет минимальным.
Проверка версии Python
Откройте терминальное окно, запустив приложение
Terminal в вашей системе
(в Ubuntu нажмите клавиши Ctrl+Alt+T). Чтобы проверить, установлена ли под- держка Python в вашей системе, введите команду
python
(со строчной буквы p).
На экране появится информация о том, какая версия Python у вас установлена, и приглашение
>>>
, в котором можно вводить команды Python:
$
1   2   3   4   5   6   7   8   9   ...   53


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