Erhalten Sie Zugang zu diesem und mehr als 300000 Büchern ab EUR 5,99 monatlich.
Программирование — это приключение, полное трудностей, нового опыта, побед и поражений. В книге «Поговорим на Python» вы присоединитесь к Эрику и Саймону, которые учатся программировать на Python и создают свое первое приложение. Книга написана специально для будущих программистов и идеальна, чтобы начать осваивать навык, который останется на всю жизнь! Книга «Поговорим на Python» учит писать код, задавать вопросы, делать ошибки и пробовать разные решения — прямо как в жизни. Вы шаг за шагом будует создавать приложение для небольшой кофейни, начиная с онлайн-меню и заканчивая хранением заказов в базе данных. Уникальные практические задания приведут вас туда, куда не добираются другие книги для начинающих. Вы получите и отработаете на практике такие важные навыки, как планирование структуры приложения, поиск ошибок и управление ожиданиями пользователей.
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 267
Veröffentlichungsjahr: 2024
Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:
Переводчик О. Аксенова
Павел Анни
Поговорим на Python. Разработка ПО для начинающих. — СПб.: Питер, 2024.
ISBN 978-5-4461-4105-0
© ООО Издательство "Питер", 2024
Моему папе
В основе этой книги лежит реальная история. Мой сын Эрик любит ходить в Starbucks и пробовать напитки с новыми вкусами и топпингами. Однажды ему захотелось готовить кофе самому и угощать друзей. Он решил принимать заказы на планшете, и я предложил ему написать небольшое приложение. Он уже пробовал программировать, но тогда ему стало скучно. А вот на этот раз перед ним оказалась реальная задача, которую можно было решить с помощью программирования, и у него появился интерес.
Так и родилась эта книга. Надеюсь, вы тоже найдете задачу, которая вас заинтересует, — а книга поможет ее решить.
Несколько советов:
• Не спешите. Я понимаю, что вам не терпится открыть последнюю главу, скачать код финальной версии программы и запустить его. Не делайте этого. Продвигайтесь шаг за шагом, пишите код сами (не копируйте!), пробуйте запустить его и только потом идите дальше. Иногда вам нужно будет вернуться к началу и перечитать главу. Иногда вам просто нужен будет перерыв. Не волнуйтесь! Возьмите паузу и перечитайте главу — только не бросайте.
• Ошибайтесь. Если все идет идеально, значит, вы не учитесь. Единственный способ чему-то научиться — делать ошибки. Не бойтесь ошибаться. Экспериментируйте с кодом, меняйте его, получайте сообщения об ошибках и читайте их. Ищите информацию об ошибке в интернете, и вы увидите, что тысячи людей ошибались так же, как и вы. Разберитесь, как они исправили свою ошибку, и исправьте ее у себя. Идите дальше и не останавливайтесь.
• Задавайте вопросы. Друзьям, родителям, бабушкам и дедушкам. Задавайте вопросы в интернете. Рассказывайте о своей проблеме — иногда этого достаточно, чтобы найти решение самому. Не стесняйтесь, в программировании не бывает «глупых вопросов». Спрашивайте и идите вперед.
• Двигайтесь дальше. Изменяйте приложение, которое вы создали с помощью этой книги. Добавьте в него что-то свое, пусть оно станет уникальным. Подумайте, какие еще приложения вы можете написать. Посмотрите вокруг: что можно автоматизировать? Можете ли вы написать приложение или сайт, похожие на известные вам? Расскажите о своих идеях друзьям — может быть, вы создадите что-то вместе. Программирование — это круто. Не бросайте его.
• Говорите. Поделитесь своим опытом на форуме liveBook. Расскажите о своих мыслях и идеях друзьям. Обсуждая проблемы, которые вам удалось решить, вы делаете свой «разговор на Python» интереснее.
Это моя первая книга, и я бы не смог написать ее без поддержки и руководства многих людей, чью помощь невозможно переоценить.
Прежде всего, я хочу поблагодарить своих родителей. Мой отец был приверженцем STEM-образования1. Он наводнил наш дом научно-популярными изданиями и вдохновил меня на изучение программирования. Он предсказывал, что программирование станет второй грамотой, и оказался прав как никогда. Моя мать всю жизнь преподавала физику, и от нее я унаследовал призвание к педагогике.
Я благодарю своих сыновей, Саймона и Эрика, за то, что они дали мне возможность научить их языку Python. Этот неоценимый опыт помог мне вырасти и как педагогу, и как разработчику.
Спасибо моей жене Татьяне. Я искренне признателен ей за огромное терпение и постоянную поддержку. Она не упрекнула меня ни за один выходной, который я провел за компьютером, а не в ее прекрасном обществе. Все время, пока шла работа над книгой, она выслушивала мои мысли и идеи, давала неоценимые советы и делилась своей точкой зрения.
Я благодарен редакторам издательства Manning: Трою Драйеру (Troy Dreier), Тони Арритоле (Toni Arritola) и Марии-Терезе Смит (Marie-Therese Smith), во многом благодаря которым эта книга появилась на свет. Трой увидел потенциал моих первых набросков и порекомендовал их издательству Manning, без которого работа над книгой никогда бы не началась. А мягкость и настойчивость Тони помогла завершить книгу вовремя: без нее работа над книгой никогда бы не закончилась. Мария-Тереза, выступавшая педагогом, инженером и специалистом по данным, тщательно проверила код и технические подробности, чтобы читатели не застряли на первом же примере.
Я хочу поблагодарить Николаса Х. Толлерви (Nicholas H. Tollervey), ведущего разработчика редактора Mu, и всех участников этого прекрасного проекта с открытым исходным кодом. Эта среда разработки на Python, удобная для новичков, обеспечила все необходимое для моей книги, от первых шагов в изучении языка до разработки полностекового веб-приложения.
Спасибо всем рецензентам: Афифу Хайдеру, Элу Пежевски, Алану Гилу Форце, Алексису Перье, Амогу Рагхунатху, Эндрю Р. Фриду, Арсалану Хану, Арье АрунКумару, Жану-Батисту Банг Нтеме, Бену Макнамаре, Бернарду Фуэнтесу, Крису Карделлу, Кристиану Саттону, Кларе Макадамс, Клеменсу Баадеру, Дэвиду Кухте, Дхивье Сивасубраманиане, Элоне Виалатте, Файязу Эвану Хайдеру, Ганешу Сваминатану, Джорджу Томасу, Грегу Фриду, Ханне Чунг, Хасину Хайдеру, Джексону Макнамаре, Яне Драгосавлевич, Джанит Анжарии, Химене де Хесус Мата Кобиан, Жуану Динису Феррейре, Киту Киму, Кевину Чунгу, Мафинару Хану, Марку-Энтони Тейлору, Мэри-Энн Тигесен, Мигелю Эдуардо Хиль Биро, Натану-Стивену Тейлору, Нику Пипенбрейеру, Нинославу Черкезу, Ору Голану, Павлу Шимону, Филиппу Виалатту, Регине де Хесус Мата Кобиан, Роберту Кулаговски, Рупе Лахири, Сатадуру Рою, Шаурье Даре, Шиваншу Батре, Шиону Рою, Сраванти Редди, Шрише Редди, Шрише Тхиммаредди, Судипу Батре, Сумиту Бхаттачарии, Таруну Ганешу, Тавхиде Хуссейн, Вальтеру Александру Мата Лопесу, Уиллу Пежевски и Вольфи Баадеру (Afif Hayder, Al Pezewski, Alan Gil Forza, Alexis Perrier, Amogh Raghunath, Andrew R. Freed, Arsalan Khan, Arya ArunKumar, Jean-Baptiste Bang Nteme, Ben McNamara, Bernard Fuentes, Chris Kardell, Christian Sutton, Clara McAdams, Clemens Baader, David Kuhta, Dhivya Sivasubramanian, Elona Vialatte, Faiyaz Evan Hayder, Ganesh Swaminathan, George Thomas, Greg Freed, Hannah Cheung, Hasin Hayder, Jackson McNamara, Jana Dragosavljević, Janit Anjaria, Jimena de Jesús Mata Cobián, João Dinis Ferreira, Keith Kim, Kevin Cheung, Mafinar Khan, Marc-Anthony Taylor, Mary Anne Thygesen, Miguel Eduardo Gil Biraud, Nathan- Steven Taylor, Nik Piepenbreier, Ninoslav Čerkez, Or Golan, Pavel Šimon, Philippe Vialatte, Regina de Jesús Mata Cobián, Robert Kulagowski, Rupa Lahiri, Sataduru Roy, Shaurya Dara, Shivansh Batra, Shyon Roy, Sravanthi Reddy, Srisha Reddy, Srisha Thimmareddy, Sudeep Batra, Sumit Bhattacharyya, Tarun Ganesh, Tawhida Hussain, Walter Alexander Mata López, Will Pezewski, and Wolfie Baader) — ваши предложения помогли сделать книгу лучше.
Наконец я выражаю сердечную благодарность всему сообществу Python. Объем знаний, которые я почерпнул из подкастов, видеороликов, выступлений на конференциях, книг и онлайн-форумов за все эти годы, неизмерим. Доброжелательность и поддержка сообщества, несомненно, одна из главных причин, по которым Python так ценят разработчики. Спасибо вам всем!
1 STEM — новый подход в образовании, при котором все отрасли естественно-научного и технического знания объединены, и ребенок получает эти знания не из учебника, а через решение творческих задач. — Примеч. пер.
Я написал эту книгу для подростков, которым интересно изучать программирование на практике. Она построена в форме диалога двух братьев, которые вместе работают над приложением для кофейни. Следи за их разговором и пиши свое приложение вместе с ними.
Может быть, ты уже учишься программировать — онлайн или в школе. Ты знаешь основы, но еще не работал над реальным проектом.
Может быть, ты еще не изучал программирование, но уверенно владеешь компьютером и тебе интересно разобраться, как работают программы.
Может быть, ты использовал какие-то онлайн-приложения, а теперь хочешь создать свое.
Может быть, твой старший брат или сестра уже пишут программы и приложения и ты тоже мечтаешь научиться программировать.
Если хотя бы в одном из этих описаний ты узнал себя — отлично! Читая эту книгу, ты будешь учиться вместе с Саймоном и Эриком и напишешь свое приложение за пару недель.
Если вы родитель (бабушка или дедушка) и вам нужно простое руководство, чтобы изучать программирование с ребенком (внуком), эта книга для вас! А может, вы сами хотите научиться программировать? Ведь моя книга не только для детей. Я приглашаю всех желающих изучать Python и писать приложения!
Каждая глава книги рассказывает, что Эрик и Саймон (а позже и Эмили) написали за день. Каждый день они собирались вместе примерно на час, обсуждали свое приложение и писали код. Ты можешь делать так же — читать по одной главе в день и писать код для нее. Если появятся вопросы, задавай их на форуме liveBook или ищи ответы в интернете.
В книге 15 глав.
Первая часть состоит из 9 глав, в которых Эрик и Саймон работают над первой текстовой версией приложения. Текстовой — значит, что оно работает как чат: спрашивает клиентов, что они хотят заказать, и ждет их ответов.
В главе 1 Эрику приходит идея самого приложения. Он хочет готовить кофе для друзей, а для этого должен принимать у них заказы. Саймон помогает ему написать первую версию приложения.
В главе 2 Эрик узнает о списках. С помощью списков можно организовать меню с разными вкусами и топпингами.
В главе 3 Эрик замечает, что он по нескольку раз повторяет свой код. Чтобы не повторяться, Саймон предлагает использовать функции. Код приложения становится короче, и теперь его удобнее читать.
В главе 4 Эрик и Саймон обрабатывают ошибки пользователя. Что, если клиент ошибется при вводе заказа? Приложение должно уметь обрабатывать ошибки.
В главе 5 Саймон учит Эрика работать с файлами. Теперь менеджер кофейни может редактировать меню в текстовом файле.
В главе 6 братья создают главное меню приложения. После этого приложение начинает работать постоянно и обслуживать клиентов одного за другим.
В главе 7 Эрик и Саймон пишут новые функции, которые получают заказ и выводят его на экран.
В главе 8 Эрик узнает о формате JSON. Саймон рассказывает, как хранить заказы в JSON-файле.
В главе 9 братья заканчивают текстовую версию и обсуждают, как сделать из нее веб-приложение.
Во второй части (главы 10–15) Эрик, Саймон и Эмили работают над веб-версией приложения. Они создают веб-версию меню, устанавливают соединение с базой данных и работают над стилями и цветами. В конце они тестируют приложение на смартфонах и планшетах.
В главе 10 к братьям присоединяется Эмили. Саймон показывает Эрику и Эмили, как создать простое веб-приложение. Они узнают, как использовать веб-формы и меню.
В главе 11 Эрик и Эмили работают над созданием веб-форм и меню для кофейни.
В главе 12 Саймон рассказывает Эрику и Эмили, как сохранять заказы в базе данных. Они учатся использовать язык структурированных запросов (SQL).
В главе 13 друзья начинают украшать свое веб-приложение. Теперь они знают, как поменять шрифт и цвет фона страницы, как добавить на страницу картинку.
В главе 14 Саймон показывает Эрику и Эмили, как с помощью искусственного интеллекта можно улучшить код, написать комментарии и разобраться в сообщениях об ошибках.
В главе 15 Саймон, Эрик и Эмили делают приложение доступным для смартфонов и планшетов, тестируют его, и оно работает! Они обсуждают, что делать дальше: как разместить приложение в облаке и добавить в него больше функций. Они решают продолжить работу над приложением и обмениваться идеями на сайте.
Предлагаю читать эту книгу как рассказ, главу за главой. Не пропускай блоки с пометкой «ТВОЙ ХОД». Твоя задача — сделать то же, что Эрик, Саймон и Эмили, но по-своему. Подключи воображение, меняй код, создай свое уникальное приложение! Может быть, тебе захочется сделать перерыв. Или перечитать главу, чтобы лучше ее понять. Это нормально. Читай книгу в своем темпе — только не бросай!
Если ты застрял на каком-то фрагменте кода, попробуй скопировать его из нашего репозитория (подробнее об этом ниже). Если что-то непонятно, спроси на форуме liveBook (о нем мы уже упоминали выше).
Исходный код из этой книги можно найти на GitHub: https://github.com/pavelanni/pythonicadventure-code. В конце каждой главы есть ссылка на код, относящийся к этой главе. Исполняемые фрагменты можно загрузить из электронной версии на liveBook по адресу https://livebook.manning.com/book/a-pythonic-adventure.
Примеры исходного кода есть как в нумерованных листингах, так и в тексте. В обоих случаях код набран моношириннымшрифтом, в отличие от обычного текста.
Во многих случаях оригинальный код переформатирован: добавлены разрывы строк и изменены отступы, чтобы он поместился на странице.
Кроме того, комментарии в листингах часто опускаются, если код описан в тексте. Ко многим листингам имеются примечания, где я обращаю внимание на важные концепции.
Приобретая книгу «Поговорим на Python», вы получаете бесплатный доступ к закрытому веб-форуму издательства Manning (на английском языке), на котором можно оставлять комментарии о книге, задавать технические вопросы и получать помощь от автора и других пользователей. Чтобы получить доступ к форуму, откройте страницу https://livebook.manning.com/book/a-pythonic-adventure/discussion. Информацию о форумах Manning и правилах поведения на них см. на https://livebook.manning.com/discussion.
В рамках своих обязательств перед читателями издательство Manning предоставляет ресурс для содержательного общения читателей и авторов. Эти обязательства не подразумевают конкретную степень участия автора, которое остается добровольным (и неоплачиваемым). Задавайте автору хорошие вопросы, чтобы он не терял интереса к происходящему! Форум и архивы обсуждений доступны на веб-сайте издательства, пока книга продолжает издаваться.
У книги есть свой сайт: https://pythonicadventure.com. На нем я собрал идеи других похожих проектов (на случай, если тебе не понравится работать с кофейней), а также информацию о том, как исправлять ошибки, и предложения по улучшению приложения.
Лучший информационный ресурс о Python — это официальный сайт https://www.python.org. Там можно найти всю необходимую документацию, блоги, статьи и мастер-классы. Коллекция ссылок на другие ресурсы на https://wiki.python.org/moin/BeginnersGuide также очень пригодится новичкам.
После работы с этой книгой ты сможешь решать на Python более серьезные задачи. Продолжить «разговор на Python» помогут следующие издания:
• Кен Юэнс-Кларк (Ken Youens-Clark). «Tiny Python Projects» (https://www.manning.com/books/tiny-python-projects)
• Реувен М. Лернер (Reuven M. Lerner). Python Workout2 (https://www.manning.com/books/python-workout)
• Дейн Хиллард (Dane Hillard). Practices of the Python Pro3 (https://www.manning.com/books/practices-of-the-python-pro)
2 Лернер Р. «Python-интенсив: 50 быстрых упражнений»
3 Хиллард Д. «Секреты Python Pro». СПб., издательство «Питер».
ПАВЕЛ АННИ — главный инженер по работе с клиентами (Principal Customer Engineer) в SambaNova Systems. Прежде чем присоединиться к этому стартапу в области искусственного интеллекта, Павел работал в Sun Microsystems, Oracle и Red Hat. Основная цель его карьеры — обучать людей и популяризировать новые технологии. Он разработал и вел курсы по языкам программирования, операционным системам Unix и Linux, Kubernetes и другим темам.
Вместе с героями книги ты будешь создавать свое приложение для кофейни. Для удобства чтения мы перевели на русский язык все тексты, которые вводятся пользователями приложения и выводятся на экран.
Однако обращаем внимание, что весь исходный код к книге, который можно скачать на GitHub (https://github.com/pavelanni/pythonicadventure-code), разумеется, остался на английском языке. Соответственно скриншоты на рисунках тоже на английском. В большинстве случаев мы даем перевод текстов на скриншотах в выносках или под рисунками, кроме совсем элементарных случаев (предполагая, что читатель хотя бы немного владеет английским языком :-)).
Свои замечания, предложения, вопросы отправляйте по адресу [email protected] (издательство «Питер», компьютерная редакция).
Мы будем рады узнать ваше мнение!
На веб-сайте издательства www.piter.com вы найдете подробную информацию о наших книгах.