У каждого программиста своя история о том, как он написал первую программу. Я начал изучать программирование еще в детстве, когда мой отец работал в Digital Equipment Corporation, одной из ведущих компаний современной компьютерной эры. Я написал свою первую программу на компьютере, который мой отец собрал в подвале нашего дома из различных компонентов. Компьютер представлял собой материнскую плату, подключенную к клавиатуре без корпуса, а в качестве монитора использовалась простейшая электронно-лучевая трубка. Моей первой программой стала игра по отгадыванию чисел, которая выглядела примерно так:
Я загадал число! Попробуйте отгадать мое число: 25
Слишком мало! Следующая попытка: 50
Слишком много! Следующая попытка: 42
Верно! Хотите сыграть снова? (да/нет) нет
Спасибо за игру!
Никогда не забуду, как это было здорово: моя семья играла в написанную мной игру, и все работало точно так, как я задумал.
Очень приятно создавать нечто предназначенное для конкретной цели и успешно решающее свою задачу. Программы, которые я пишу сейчас, намного серьезнее моих детских попыток, но чувство удовлетворения, которое я получаю, создавая работающую программу, остается практически тем же.
Цель книги — помочь читателю как можно быстрее освоить Python, чтобы он начал писать работающие программы (игры, визуализации данных и веб-приложения), и одновременно заложить основу в области программирования, которая будет полезна для дальнейших изысканий. Книга написана для людей любого возраста, которые прежде никогда не программировали на Python или вообще никогда не программировали. Если вы хотите быстро изучить азы программирования, чтобы сосредоточиться на интересных проектах, а также любите проверять свое понимание новых концепций, решая сложные задачи, — эта книга для вас. Она также прекрасно подходит для преподавателей, желающих предложить своим ученикам вводный курс программирования на основе проектов. Если вы студент, которому хочется иметь более доступное руководство по Python, чем предложенный вам учебник, то данная книга упростит ваше обучение. Она же поможет освоить программирование, если вы хотите сменить профессию. Эта книга хорошо зарекомендовала себя среди широкого круга читателей, имеющих самые разные цели.
Цель книги — сделать вас хорошим программистом вообще и хорошим программистом на Python в частности. Процесс обучения будет эффективным, и вы приобретете много полезных привычек, осваивая общие концепции программирования. Перевернув последнюю страницу книги, вы будете готовы к знакомству с более серьезными возможностями Python, а изучение вашего следующего языка программирования тоже упростится.
В части I будут представлены базовые концепции программирования, которые необходимо знать для написания программ на Python. Эти концепции ничем не отличаются от тех, которые рассматриваются в начале изучения почти любого языка программирования. Вы познакомитесь с разными видами данных и способами их хранения в своих программах. Будете создавать коллекции данных, такие как списки и словари, и работать с ними. Научитесь использовать циклы while и операторы if для проверки определенных условий и выполнения тех или иных разделов кода в зависимости от того, истинно условие или ложно, — это метод, который помогает автоматизировать многие процессы.
Вы научитесь получать входные данные от пользователя, чтобы ваши программы стали интерактивными, и выполнять их до тех пор, пока пользователь остается активным. Кроме того, вы узнаете, как написать функции, которые позволяют многократно использовать части ваших программ, чтобы вы могли написать блок кода для некоего действия один раз, а потом задействовать его многократно по мере необходимости. Затем вы примените эту концепцию к более сложному поведению классов, что позволит даже относительно простым программам реагировать на множество разнообразных ситуаций. Вы научитесь писать программы, корректно обрабатывающие многие типичные ошибки. Освоив каждую из этих базовых концепций, вы напишете ряд все более сложных программ, используя полученные знания. Наконец, вы сделаете первые шаги на пути к программированию среднего уровня: научитесь писать тесты для своего кода, чтобы вы могли продолжать разработку программ, не беспокоясь о возможном внесении багов. Весь материал части I подготовит вас к более сложным и масштабным проектам.
В части II полученные знания помогут вам создать три проекта. Вы можете взяться за любые из этих проектов в том порядке, который лучше подходит для вас. В первом проекте (главы 12–14) будет создан шутер «Инопланетное вторжение» в стиле классического хита Space Invaders, состоящий из многих уровней с нарастающей сложностью. Завершив этот проект, вы значительно продвинетесь в разработке собственных 2D-игр. Даже если вы не планируете стать разработчиком игр, работа над этим проектом — приятный способ связать воедино многое из того, что вы узнаете в части I.
Второй проект (главы 15–17) познакомит вас с визуализацией данных. Чтобы разобраться в огромных объемах доступной информации, специалисты по анализу данных применяют различные средства визуализации. Вы будете работать с разными наборами данных: теми, что генерируются в программах, которые вы скачиваете с онлайн-источников и которые ваши программы загружают автоматически. Завершив этот проект, вы сможете писать программы, обрабатывающие большие наборы данных и создающие визуальное представление самых разных видов информации.
В третьем проекте (главы 18–20) мы напишем небольшое веб-приложение «Журнал обучения». Этот проект позволяет фиксировать информацию, которую вы узнали в ходе изучения конкретной темы. Пользователь приложения сможет вести разные журналы по разным темам, позволять другим создавать учетные записи и вести собственные журналы. Вы также узнаете, как развернуть свой проект в Интернете, чтобы любой желающий мог получить к нему онлайн-доступ из любой точки мира.
Я публикую множество дополнительных материалов к книге на сайте https://ehmatthes.github.io/pcc_3e. В них содержится следующая информация.
• Инструкции по настройке. Онлайн-инструкции идентичны инструкциям, приведенным в книге, но содержат активные ссылки, с помощью которых можно переходить к различным фазам настройки. Если у вас возникнут какие-либо проблемы с настройкой, то обращайтесь к этому ресурсу.
• Обновления. Python, как и все языки, постоянно развивается. Я отслеживаю наборы обновлений, поэтому, если что-то не работает — обратитесь к этому ресурсу и проверьте, не было ли каких-либо изменений в инструкциях.
• Решения к упражнениям. Не жалейте времени на самостоятельное решение задач из разделов «Упражнения». Но если вы оказались в тупике и не знаете, что делать, ответы к большинству упражнений доступны на сайте.
• Шпаргалки. Полный набор шпаргалок с краткой информацией по основным концепциям также доступен для скачивания на сайте.
Каждый год я задумываюсь над тем, продолжать ли мне работать на Python или же перейти на другой язык — вероятно, более новый в мире программирования. И все же я продолжаю использовать Python по многим причинам. Этот язык невероятно эффективен: программы, написанные на нем, делают больше при меньшем объеме кода, чем требуется во многих других языках. Вдобавок синтаксис Python позволяет писать «чистый» код. Такой код легче читать и отлаживать, а также расширять и развивать по сравнению с другими языками.
Python используется для разных целей: создания игр и веб-приложений, решения бизнес-задач и разработки внутренних инструментов для разных интересных проектов. Кроме того, язык широко применяется в научной области для теоретических исследований и решения прикладных задач.
Впрочем, одной из самых важных причин использования этого языка для меня остается сообщество Python, состоящее из невероятно разных и благожелательных людей. Сообщество играет исключительно важную роль для программистов, поскольку программирование — не индивидуальное занятие. Многим из нас, даже самым опытным специалистам, приходится обращаться за советом к коллегам, которые уже решали похожие задачи. Доброжелательное сообщество, пронизанное связями между людьми, помогает решать задачи, и сообщество Python готово прийти на помощь людям, для которых это первый язык программирования или которые стали изучать Python, имея опыт работы на других языках.
Python — замечательный язык, так давайте браться за дело!
Ваши замечания, предложения, вопросы отправляйте по адресу [email protected] (издательство «Питер», компьютерная редакция).
Мы будем рады узнать ваше мнение!
На веб-сайте издательства www.piter.com вы найдете подробную информацию о наших книгах.