Python за 7 дней: Краткий курс для начинающих PDF
Document Details
2023
Эндрю Парк
Tags
Summary
Эта книга — краткий курс по Python для начинающих программистов. Она охватывает основы языка, установку, объекты и методы, а также содержит практические упражнения для отработки навыков. Книга написана простым языком и ориентирована на практическое применение.
Full Transcript
КУПИТЬ ЭНДРЮ ПАРК PYTHON ЗА 7 ДНЕЙ КРАТКИЙ КУРС ДЛЯ НАЧИНАЮЩИХ 2023 Эндрю Парк Python за 7 дней. Краткий курс для начинающих Серия «Библиотека программиста»...
КУПИТЬ ЭНДРЮ ПАРК PYTHON ЗА 7 ДНЕЙ КРАТКИЙ КУРС ДЛЯ НАЧИНАЮЩИХ 2023 Эндрю Парк Python за 7 дней. Краткий курс для начинающих Серия «Библиотека программиста» Перевел с английского Е. Матвеев Научный редактор А. Алимова ББК 32.973.2-018.1я7 УДК 004.43(07) Парк Эндрю П18 Python за 7 дней. Краткий курс для начинающих. — СПб.: Питер, 2023. — 256 с.: ил. — (Серия «Библиотека программиста»). ISBN 978-5-4461-2057-4 Хотите за одну неделю освоить самый популярный язык программирования? Надоело раз- бираться в море хаотичной и неструктурированной информации из многочисленных бесплат- ных онлайн-источников? Хорошая новость! Не нужно тратить время, чтобы осилить сложные академические тексты, неоправданно дорогие онлайн-курсы или видеотуториалы, которые содержат слишком много технических деталей, непонятных для начинающих. Книга «Python за 7 дней» написана специально для новичков в программировании. Ее ос- новные принципы — это простота и практичность. Вы познакомитесь с кратким введением в Python, чтобы понять, какую пользу можно из- влечь, изучая его; узнаете, как установить Python и какой дистрибутив лучше использовать; разберетесь с объектами и методами (включая ООП), чтобы эффективно использовать этот удобный язык и его простой синтаксис. Практические упражнения в конце каждой главы идеально подойдут для отработки навыков программирования. 16+ (В соответствии с Федеральным законом от 29 декабря 2010 г. № 436-ФЗ.) ISBN 979-8836767464 англ. © 2022 ISBN 978-5-4461-2057-4 рус. © Перевод на русский язык ООО «Прогресс книга», 2023 © Издание на русском языке, оформление ООО «Прогресс книга», 2023 © Серия «Библиотека программиста», 2023 Права на издание получены по соглашению с Eureka Online Ltd. Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав. Информация, содержащаяся в данной книге, получена из источников, рассматриваемых издательством как надежные. Тем не менее, имея в виду возможные человеческие или технические ошибки, издательство не может гарантировать абсолютную точность и полноту приводимых сведений и не несет ответственности за возможные ошибки, связанные с использованием книги. В книге возможны упоминания организаций, деятельность которых запрещена на территории Российской Федерации, таких как Meta Platforms Inc., Facebook, Instagram и др. Издательство не несет ответственности за доступность материалов, ссылки на которые вы можете найти в этой книге. На момент подготовки книги к изданию все ссылки на интернет-ресурсы были действующими. Изготовлено в России. Изготовитель: ООО «Прогресс книга». Место нахождения и фактический адрес: 194044, Россия, г. Санкт-Петербург, Б. Сампсониевский пр., д. 29А, пом. 52. Тел.: +78127037373. Дата изготовления: 06.2023. Наименование: книжная продукция. Срок годности: не ограничен. Налоговая льгота — общероссийский классификатор продукции ОК 034-2014, 58.11.12 — Книги печатные профессиональные, технические и научные. Импортер в Беларусь: ООО «ПИТЕР М», 220020, РБ, г. Минск, ул. Тимирязева, д. 121/3, к. 214, тел./факс: 208 80 01. Подписано в печать 02.05.23. Формат 60х90/16. Бумага офсетная. Усл. п. л. 16,000. Тираж 1000. Заказ https://t.me/portalToIT Содержание https://t.me/it_boooks/2 Введение........................................ 14 Что такое Python........................................................................... 16 Обо мне........................................................................................ 17 В чем эта книга поможет вам................................................. 18 Чем вы можете помочь этой книге......................................... 20 Глава 1. Введение в Python......................... 21 История Python............................................................................. 23 Применение Python...................................................................... 25 Веб-программирование........................................................... 25 Научные вычисления.............................................................. 25 Машинное обучение и искусственный интеллект................... 26 Linux и управление базами данных........................................ 26 Тестирование на проникновение и хакерские атаки.............. 27 Разные версии Python.................................................................. 28 Python 2................................................................................... 28 Python 3................................................................................... 29 Какую версию выбрать........................................................... 29 Преимущества изучения Python................................................... 30 Установка Python.......................................................................... 35 Как установить Python в Linux................................................. 35 Как установить Python в macOS.............................................. 37 Как установить Python в Windows........................................... 38 6 Содержание Глава 2. PyСharm и IDLE............................ 39 Преимущества интерпретатора Python........................................ 41 Как использовать оболочку Python IDLE................................................................................ 43 Как открыть файл Python в IDLE................................................... 45 Как редактировать файлы...................................................... 45 Интегрированная среда разработки (IDE).................................... 47 Возможности IDE.................................................................... 47 PyCharm........................................................................................ 50 Какие возможности доступны в PyСharm............................... 50 Редактор кода................................................................... 51 Навигация по коду............................................................. 51 Мощные средства рефакторинга...................................... 51 Интеграция с веб-технологиями........................................ 52 Интеграция с научными библиотеками............................. 52 Тестирование..................................................................... 52 Как работать с PyCharm.......................................................... 53 Шаг 1. Установка PyСharm................................................. 53 Шаг 2. Создание нового проекта....................................... 54 Шаг 3. Структура проектов PyСharm.................................. 55 Шаг 4. Расширенные возможности PyСharm..................... 55 Руководство по стилю Python...................................................... 57 Глава 3. Основы Python............................. 60 Почему входные данные необходимы......................................... 62 Сценарии использования....................................................... 62 Функция input()............................................................................. 64 Как составлять подсказки для пользователя........................ 65 Что такое экранированная последовательность.................... 67 Для чего нужна команда end.................................................. 67 СОДЕРЖАНИЕ 7 Комментарии в Python.................................................................. 68 Однострочные комментарии.................................................. 68 Для чего используются однострочные комментарии....... 69 Многострочные комментарии................................................ 69 Для чего используются многострочные комментарии..... 70 Зарезервированные ключевые слова.......................................... 71 Операторы Python........................................................................ 72 Разновидности операторов.................................................... 73 Сложение........................................................................... 73 Вычитание......................................................................... 74 Умножение......................................................................... 75 Деление............................................................................. 76 Остаток от деления........................................................... 77 Целочисленное деление.................................................... 78 Побитовые операторы....................................................... 79 Приоритет операторов............................................................ 80 Правила приоритета операторов в Python......................... 80 Глава 4. Переменные в Python....................... 82 Что такое переменные................................................................. 84 Выбор имен переменных.............................................................. 88 Правила выбора имен переменных........................................ 88 Как определить переменную....................................................... 90 Как узнать адрес переменной в памяти....................................... 91 Локальные и глобальные переменные в Python.......................... 93 Глава 5. Типы данных Python........................ 96 Что такое типы данных................................................................ 98 Составные элементы кода...................................................... 99 Идентификаторы............................................................... 99 8 Содержание Литералы......................................................................... 100 Операторы....................................................................... 100 Строки........................................................................................ 101 Как обращаться к символам строки..................................... 103 Форматирование строк......................................................... 105 Операции со строками.......................................................... 105 Конкатенация.................................................................. 106 Умножение строк............................................................. 106 Присоединение................................................................ 107 Определение длины строки............................................ 107 Поиск в строке................................................................ 108 Преобразование регистра............................................... 109 Метод title()...................................................................... 110 Целые числа............................................................................... 111 Числа с плавающей точкой........................................................ 112 Логический тип данных.............................................................. 113 Глава 6. Сложные структуры данных в Python......... 114 Списки........................................................................................ 116 Пустой список....................................................................... 117 Индексы в списках............................................................... 118 Срезы.................................................................................... 121 Получение длины списка...................................................... 123 Изменение значений элементов списка............................... 124 Конкатенация списков.......................................................... 125 Дублирование списков......................................................... 125 Удаление элементов............................................................. 126 Операторы in и not in............................................................. 126 Метод index()......................................................................... 127 Метод insert()........................................................................ 128 Метод sort()........................................................................... 129 СОДЕРЖАНИЕ 9 Кортежи...................................................................................... 130 Конкатенация кортежей........................................................ 132 Дублирование....................................................................... 133 Сегментирование кортежей.................................................. 134 Как удалить кортеж............................................................... 134 Словари...................................................................................... 135 Как создать словарь............................................................. 135 Глава 7. Условные конструкции и циклы.............. 138 Операторы сравнения................................................................ 140 Оператор «меньше» ().......................................................... 143 Оператор «равно» (==)........................................................... 144 Операторы управления............................................................. 145 Последовательная структура................................................ 145 Условная конструкция.......................................................... 146 Циклы................................................................................... 146 Условные операторы if/else....................................................... 147 Операторы if, elif, else........................................................... 149 Цикл for...................................................................................... 150 Цикл while................................................................................... 151 Операторы break и continue........................................................ 152 Как работает break................................................................ 152 Как работает continue........................................................... 153 Глава 8. Функции и модули......................... 155 Для чего нужны функции........................................................... 157 Разновидности функций............................................................ 159 Как работают функции............................................................... 160 Как определять собственные функции...................................... 161 10 СОДЕРЖАНИЕ Использование параметров в функциях.................................... 164 Передача аргументов............................................................ 166 Позиционные аргументы...................................................... 167 Именованные аргументы...................................................... 169 Аргументы по умолчанию.................................................... 170 Область видимости в Python...................................................... 172 Почему важна область видимости....................................... 172 Локальная и глобальная область видимости....................... 173 Модули....................................................................................... 177 Что делает import.................................................................. 177 Как создать модуль.............................................................. 178 Встроенные функции и модули.................................................. 180 print()..................................................................................... 180 abs()...................................................................................... 181 round()................................................................................... 181 max()..................................................................................... 182 min()...................................................................................... 182 sorted().................................................................................. 183 sum()..................................................................................... 183 len()....................................................................................... 184 type()..................................................................................... 184 Строковые методы..................................................................... 185 strip()..................................................................................... 185 replace()................................................................................. 186 split()..................................................................................... 186 join()...................................................................................... 187 Глава 9. Объектно-ориентированное программирование............................. 189 Что такое объектно-ориентированное программирование....... 191 Пример использования......................................................... 191 СОДЕРЖАНИЕ 11 Как создать класс в Python........................................................ 193 Как создаются объекты............................................................. 194 Что содержат объекты.......................................................... 194 Пример создания объекта.................................................... 195 Параметр self........................................................................ 195 Метод __init__........................................................................ 196 Как создаются классы и объекты с методами..................... 198 Наследование............................................................................ 199 Пример использования......................................................... 199 Глава 10. Операции с файлами в Python............... 202 Файлы и пути к файлам.............................................................. 204 Иерархическая структура файлов......................................... 204 Определение текущего рабочего каталога........................... 206 Создание новых каталогов................................................... 206 Управляющие функции............................................................... 208 Как открыть файл функцией open()...................................... 208 Как работает open()......................................................... 209 Как читать файлы методом read()......................................... 209 Как записывать данные методом write().............................. 211 Копирование файлов и каталогов........................................ 212 Перемещение и переименование файлов и каталогов......... 214 Удаление файлов и каталогов.............................................. 215 Глава 11. Обработка исключений.................... 216 Пример обработки исключений................................................. 218 Как работают команды try и except............................................ 219 Как сработал код.................................................................. 219 Разновидности ошибок.............................................................. 220 Ошибки значений (ValueError)............................................... 220 Ошибки импортирования (ImportError)................................. 221 12 Содержание Ошибки ОС (OSError)............................................................. 221 Ошибки типов (TypeError)...................................................... 222 Ошибки имен (NameError)..................................................... 222 Ошибки индексирования (IndexError).................................... 222 Глава 12. Расширенные возможности................ 223 Requests..................................................................................... 225 Установка Requests............................................................... 225 Scrapy......................................................................................... 226 TensorFlow.................................................................................. 227 scikit-learn................................................................................... 228 Pandas........................................................................................ 229 Pygame....................................................................................... 230 Beautiful Soup............................................................................. 231 Pillow.......................................................................................... 232 Matplotlib.................................................................................... 233 Twisted........................................................................................ 234 GitHub......................................................................................... 235 Почему Github так важен для Python-разработчиков............ 235 Менеджер пакетов pip................................................................ 237 Что можно сделать с помощью pip....................................... 237 Как установить пакет............................................................ 238 Виртуальная среда..................................................................... 240 Модуль sys................................................................................. 242 Модульное тестирование........................................................... 244 Как работают модульные тесты........................................... 244 Заключение..................................... 246 Полезные привычки программистов......................................... 248 Уделяйте внимание основам................................................ 248 Содержание 13 Разбивайте задачу................................................................ 248 Найдите свою нишу............................................................... 249 Ошибки бывают полезными................................................. 249 Изучайте алгоритмы............................................................. 249 Начните пользоваться GitHub............................................... 250 Не перенапрягайтесь............................................................ 250 Изучите механизмы тестирования........................................ 251 Соблюдайте баланс между работой и личной жизнью............................................................... 251 Что дальше..................................... 252 Благодарности.................................. 254 PYTHON ЗА 7 ДНЕЙ Введение Компьютеры помогли миру выйти на новый техноло- гический уровень. С нынешнем уровнем производи- тельности и надежности они уже правят миром. Хотя компьютеры иногда называют глупыми машинами, они могут делать то, для чего предназначены, прак- тически идеально. Чтобы компьютеры стали такими производительными, люди, которых мы сегодня называем разработчиками, общались с ними на разных языках программирования годами. Суще- ствует несколько разновидностей языков програм- мирования. Подобно тому как люди используют разные языки для разговора в зависимости от региона, компьютеры и разработчики исполь- зуют языки программирования в зависимости от системы, в которой они работают. В компьютерной отрасли существует много высо- коуровневых языков программирования, но Python особенно популярен и удобен для начинающих. Эта книга, доступно объясняющая базовые идеи Python, поможет начинающим войти в IT-сферу, даже если у них вообще нет опыта программирования. https://t.me/portalToIT 16 PYTHON ЗА 7 ДНЕЙ Что такое Python https://t.me/it_boooks/2 Python — высокоуровневый язык программирования, который завоевал популярность в сообществе разра- ботчиков благодаря своей гибкости, простоте и боль- шому количеству сторонних библиотек и фреймворков, помогающих создавать программные продукты в любой области. Кроме того, Python является одним из самых популярных современных языков, потому что он подходит для начинающих. Во многих университетах Python преподается как вводный язык программирования для студентов бака- лавриата по computer science. Многие онлайн-курсы, изучающие основы программирования, часто исполь- зуют Python для представления материала. Я рад, что вы выбрали эту книгу — она поможет вам быстро и легко освоить Python. Введение 17 Обо мне Вероятно, поиск в интернете вернет вам тысячи ресурсов, посвященных языку программирования Python. Однако многие новички заходят в тупик в начале изучения языка, потому что у них нет четкого руководства, которому они могли бы следовать. Меня зовут Эндрю Парк. Я опытный программист с более чем 20-летним стажем в области разработки ПО на Python. Моя любовь к программированию возникла в то время, когда я увлекся видеоиграми. Все началось с моего желания модифицировать игру Pokemon, за которой я проводил много времени. Попытка написать небольшой блок кода, чтобы почувствовать себя чемпионом, еще в юном возрасте разожгла во мне желание разобраться в программной логике и переменных. Имея опыт создания разных игровых режимов, я понял, как работают программы, и стал экспе- риментировать с разными языками программирования. Через несколько лет я стал писать небольшие скрипты, автоматизирующие рабочие задачи. Однако в то время я еще не выбрал язык программирования и вряд ли мог считать себя настоящим разработчиком. Все языки программирования которые я опробовал (включая C и Perl), были довольно сложными, из-за чего я неод- нократно со злости чуть не бросал программирование. К счастью, в те бурные времена я открыл для себя Python, который только-только появился. Поначалу реализация Python была весьма несовершенной, так как это был простой любительский проект одного разработчика. Но по мере того, как Python привлекал к себе внимание других программистов, все больше людей начинали участвовать в этом проекте с открытым кодом, и Python стал таким 18 PYTHON ЗА 7 ДНЕЙ производительным языком программирования, каким мы его знаем сейчас. Через несколько месяцев изучения азов я начал перепи- сывать свой код на Python. Меня поразило, насколько портируемым и свободным от всего лишнего становился этот код. Когда я освоился с Python, пути назад уже не было. Я начал писать собственные приложения и публико- вать их в разных онлайн-магазинах. И хотя моя основная работа была связана с созданием веб-приложений, благо- даря Python я успешно реализовал ряд сторонних проектов в других областях. Хотя сам я неплохо владею Python, мне также хочется помочь другим людям, у которых еще нет такого опыта. Еще с тех времен, когда я занимался простой модифика- цией игр, мне всегда нравилось помогать другим изучать программирование. Я старался использовать доступные термины для простого объяснения сложных тем и помогал многим своим друзьям и коллегам. Страсть к програм- мированию и обучению подтолкнула меня к тому, чтобы написать эту книгу для тех, кто только начинает знаком- ство с Python. В чем эта книга поможет вам Программы на Python кажутся очень простыми, но это впечатление обманчиво. В принципе, читателю было бы полезно разбираться в фундаментальных темах Python и приемах, которые позволяют применять их для решения практических задач. Книга предоставляет теоретические знания, которые помогут понять основы и накопить прак- тический опыт работы на Python. Введение 19 Чтобы получить максимум пользы от книги, рекомендую некоторые приемы когнитивного обучения, которые повысят эффективность усвоения материала. Используйте графические схемы связей для установ- ления соответствия между различными концепциями и их быстрой реализации в ваших проектах. Графические схемы связей с помощью наглядного представления на тривиальных диаграммах позволяют запомнить большой объем данных. Используйте мнемонические приемы (такие как «дворец памяти» или «метод локусов») для осмысленного запо- минания данных. Примитивная зубрежка очень сильно отличается от запоминания только необходимой инфор- мации с применением когнитивных методов. Используйте метод пассивного повторения для быстрого возвращения ко всем темам, которые вы узнаете из книги. Пассивное повторение поможет закрепить основы. Используйте метод Фейнмана и объясните все базовые концепции программирования, о которых вы узнаете в книге, кому-то, кто не разбирается в теме. Если вы сможете объяснить концепцию простыми словами, значит, вы достаточно хорошо усвоили основные положения. Не ограничивайтесь использованием кода, приведен- ного в книге. Реализуйте собственный код с использо- ванием аналогичных стратегий. Простое копирование не научит вас создавать собственный код. 20 PYTHON ЗА 7 ДНЕЙ Python — язык программирования, который ожидает от вас нового подхода. Отнеситесь к кодированию на Python как к головоломке, и вскоре вы найдете способы заставить ваш мозг создавать сложную логику реальных задач. Эта книга поможет вам эффективно освоить программирование на языке Python. И я собираюсь отправиться в это путешествие вместе с вами. Готовы? Чем вы можете помочь этой книге Написать эту книгу было непросто. Иногда мне кажется, что провести много часов за отладкой проще, чем напи- сать книгу. Не буду скрывать, что впервые в своей жизни я испытывал состояние творческого тупика. Думаю, это в основном объяснялось необъятностью тем, которые размещались у меня в голове. Тем не менее изложить их в логичном, компактном и упорядоченном виде оказалось намного сложнее. Стоит упомянуть о том, что я предпочитаю обходиться без услуг издательств. Таким образом, я могу называть себя «независимым автором». Это мое личное решение. Но теперь я с гордостью могу сказать, что моя одержи- мость идеей помочь тем, кто делает первые шаги в мире программирования, победила. Мне доставит огромное удовольствие, если вы оставите положительный отзыв на Amazon. Для меня это очень много значит, и такие отзывы сильно помогут в распространении материала. Приятного чтения! Глава 1. Введение в Python 21 Глава 1 Введение в Python Python — высокоуровневый язык программиро- вания. Он прост, надежен и поддерживает муль- типарадигменные рабочие процессы. Python спра- ведливо считается отличной отправной точкой для новичков, желающих приобщиться к миру програм- мирования. Успех Python в основном обусловлен тем, что он избавлен от всего лишнего, а объем рутинного кода сводится к минимуму. Например, если вы захотите написать простую игру «Змейка» на C или C++, программа будет зани- мать около 300 строк, а на языке Python количе- ство строк кода удается сократить до 200. Столь заметные различия в программных реализациях помогли Python стать самым популярным языком для проектов с открытым исходным кодом во всем мире. Тысячи энтузиастов создали тысячи библио тек для разных компьютерных областей, благодаря чему Python стал важной вехой на пути революции проектов с открытым кодом. Глава 1. Введение в Python 23 История Python Создатель Python Гвидо ван Россум реализовал Python как любительский проект во время рождественских празд- ников. Он использовал свой опыт работы над языком программирования ABC, чтобы создать интерпретируемый язык, интуитивно понятный и удобный для программистов. Имея опыт разработки под UNIX, он прежде всего хотел с помощью Python произвести впечатление на хакеров в онлайн-сообществе. Однако из-за отклика, полученного от коллег-программи- стов, он начал доводить проект до ума и через несколько месяцев создал язык программирования, который был лаконичным, простым и быстрым. Вследствие своего вклада в проект Python Гвидо ван Россум получил титул «великодушного диктатора» сообщества Python — высо- чайшая награда, которую может завоевать разработчик проекта с открытым кодом. Прямо с момента релиза Python неизменно входит в число десяти самых популярных языков программирования согласно рейтингам TIOBE1. Минималистский подход к решению задач помог Python опередить другие языки программирования (такие как Perl) и стать одним из самых доступных языков для начинающих. Python использует философию «у задачи есть только одно решение», что противоречит философии таких языков программирования, как Perl: «существует множе- 1 Рейтинг, оценивающий популярность языков программирования на основе подсчета результатов поисковых запросов, содержащих название языка. См. https://ru.wikipedia.org/wiki/Индекс_TIOBE. — Примеч. ред. 24 PYTHON ЗА 7 ДНЕЙ ство решений одной задачи». Python придал сообществу программистов необходимую дисциплину, вследствие чего объем разработки ПО стал расти в геометрической прогрессии. Чтобы понять, какое влияние оказал Python на програм- мистов по всему миру, взгляните на перечисленные ниже области практического применения этого языка. Глава 1. Введение в Python 25 Применение Python Влияние Python проявилось в целом ряде отраслей совре- менной науки и технологий. Веб-программирование Большая часть влияния Python пришлась в первую очередь на область веб-технологий. Пока в веб-пространстве правил язык Java, Python не пользовался особой попу- лярностью. Со временем сторонние фреймворки (такие как Django и Tornado) помогли Python завоевать популярность у веб-разработчиков. По прошествии двух десятилетий Python стал одним из самых популярных скриптовых языков для веб-разра- ботки; единственным его конкурентом может считаться только JavaScript. Многие крупные компании — Google, Facebook, Netflix — используют Python в своих продуктах. Знаменитый фреймворк Django помогает программистам писать бэкенд-код для разных API. Так как язык Python удобен для автоматизации, он часто используется для разработки различных ботов, а также инструментов автоматического поиска и сбора информации. Научные вычисления Язык Python также популярен в научном сообществе из-за своей специфики открытого кода. Такие библиотеки, 26 PYTHON ЗА 7 ДНЕЙ как Numpy и SciPy, помогают ученым в области компью- терных наук проводить вычислительные эксперименты с меньшим объемом кода. Кроме того, Python лучше других языков работает с математическими вычислениями и математическими программными продуктами, поэтому в наши дни для ученых практически не существует других альтернатив. Машинное обучение и искусственный интеллект В наше время машинное обучение и искусственный интел- лект предоставляют наибольшее количество вакансий для разработчиков. Для Python существует множество сторонних библиотек (например, TensorFlow), направ- ленных исключительно на реализацию алгоритмов машин- ного обучения. Python также прекрасно подходит для глубокого обучения и технологий обработки естественных языков, что делает его одним из основных претендентов на роль лучшего языка для разработки технологий, связанных с искусственным интеллектом. Linux и управление базами данных Со стремительным развитием компаний по всему миру растет спрос на инженеров-разработчиков, способных эффективно управлять базами данных и внутренними системами. Хотя инженеры-разработчики должны хорошо разбираться в разных операционных системах (таких как Глава 1. Введение в Python 27 Linux), они также должны хорошо знать Python для авто- матизации разных процедур, необходимых для проверки производительности систем во внутренней сети. Тестирование на проникновение и хакерские атаки Python также используется хакерами по обе стороны барри- кады — как «белыми», так и «черными». «Белые» хакеры используют популярные средства Python для проверки методов противодействия проникновению. «Черные» хакеры же, напротив, используют Python-скрипты для создания эксплойтов1, которые позволяют автоматически добывать конфиденциальную информацию у жертв. Вследствие высокой адаптируемости Python почти во всех компьютерных областях появился ряд других родственных высокоуровневых языков программирования — таких как Go, Groovy и Swift. Именно благодаря Python мини- малистская философия программирования стала более популярной. 1 Фрагменты кода, использующие уязвимости в ПО. — Примеч. ред. 28 PYTHON ЗА 7 ДНЕЙ Разные версии Python Когда Python только появился в начале 90-х, он еще не был полностью отточен. В библиотеке присутствовал ряд ошибок и нестыковок, так как она разрабатывалась Россумом без чьей-либо помощи. Вследствие немедленного успеха, который Python обрел в сообществе программистов в течение двух лет с момента первого выпуска, сотни неза- висимых разработчиков стали помогать Россуму создать более масштабный проект. Специфика проекта с открытым кодом также помогла Python объединить множество интеллектуалов, которые проверяли и изменяли код там, где это необходимо. За два последних десятилетия базовая команда разработки Python выпустила две основные версии — Python 2 и Python 3. В 2022 году Python 2 продолжает использоваться многими программистами, хотя эта версия официально не поддер- живается основными разработчиками. Выбор версии полностью зависит от проекта, над которым вы работаете. Python 2 Python 2 — старая версия, выпущенная в 2000 году. Она считалась самой популярной версией Python на протя- жении долгого времени. Python 2 относительно прост, и для него существует намного больше сторонних фрей- мворков и библиотек для разработки. Несмотря на отсутствие официальных обновлений с 2021 года, Python 2.7 остается рекомендуемой версией для нескольких программных областей. Миграция всех Глава 1. Введение в Python 29 фреймворков и библиотек с Python 2 на Python 3 — трудо- емкий процесс, поэтому многие компании продолжают использовать Python 2. Python 3 Python 3.11.3 — новейшая версия Python от основной команды разработки Python1. Python 3 работает быстрее и предоставляет множество дополнительных классов программистам, работающим со стандартной библиотекой. Также ее легче поддерживать по сравнению с Python 2. Какую версию выбрать Выбор версии Python должен зависеть от области, в которой вы работаете. Например, многие специалисты по анализу и обработке данных используют Python 3, тогда как разработчики, применяющие унаследованное ПО, используют Python 2 для интеграции компонентов. ПРИМЕЧАНИЕ Весь код Python, встречающийся в книге, написан для Python 3, так как эта версия более актуальна и новичкам логичнее начинать с последней версии. 1 На момент подготовки русского издания книги. — Примеч. ред. 30 PYTHON ЗА 7 ДНЕЙ Преимущества изучения Python Популярность Python начала расти в начале 1990-х, когда компании по всему миру стали пользоваться доступностью интернета для построения сложных веб-приложений. Тради- ционные языки — такие как C и C+ — были достаточно сложными, а программисту было трудно за короткое время написать высококачественный код. В это время некоторые компании применяли Python для создания библиотек, которые могли легко использоваться с существующими библиотеками C и C++. Программисты замечали, как удобно работать на Python по сравнению с другими высо- коуровневыми языками, и стали переходить на него, чтобы быстрее получить рабочую версию своего кода. Понимание преимуществ, которые предоставляет Python, поможет вам осознать, насколько простым и надежным Python может быть для разработчиков из различных обла- стей компьютерных наук. Python — интерпретируемый язык В отличие от предшествующих языков программи- рования, которые пользовались компилятором для выполнения команд, в Python используется новый вычислительный компонент, называемый интерпрета- тором. Вместо того чтобы тратить время на обработку программы компилятором, интерпретатор применяет современные вычислительные методы для разбора кода еще до итогового выполнения программы. Динамиче- ская обработка кода может сократить время ожидания при выполнении программы. Python также использует Глава 1. Введение в Python 31 элементы естественного языка для исключения любых непроизводительных процедур, увеличивающих время разработки. Специфика структуры программ также упро- щает автоматизацию программирования, благодаря чему язык Python выбирают многие системные разработчики и администраторы Linux. Python — язык с открытым кодом Python — одна из главных причин революции проектов с открытым кодом. Благодаря его открытому характеру вы можете изменить любой код на Python и распространить его самостоятельно. Культура разработки с открытым кодом помогает программистам по всему миру делиться своими знаниями и ресурсами для разработки библиотек и фрей- мворков, упрощающих создание новых проектов. Доступ к сложным и простым проектам с помощью одного щелчка кнопкой мыши поможет начинающим понять логику программирования и создать новые инновационные проекты. Python поддерживает разные парадигмы Разные языки программирования используют разные парадигмы создания и развертывания кода. Например, в Java применяется парадигма объектно-ориентиро- ванного программирования, тогда как C использует процедурную парадигму. Парадигма программирования изменяет рабочий процесс и методологию, которая приме- няется разработчиками для решения задачи. В языке Python поддерживаются различные парадигмы программирования: структурная, функциональная, 32 PYTHON ЗА 7 ДНЕЙ объектно-ориентированная и т. д., вследствие чего он стано- вится хорошим вариантом для программистов, применя- ющих разные подходы для разных задач. В Python используется механизм сборки мусора Управление памятью — важнейшая область для разработ- чиков приложений. В высокоуровневых языках (таких как Java и C) используются сложные механизмы управления данными. Хотя эти механизмы прекрасно работают, их обслуживание требует значительного времени и усилий. В свою очередь, Python для управления памятью исполь- зует сборщик мусора. С этой стратегией в программе можно легко использовать данные и переменные, на которые не существует ссылок. Доступность Python Одна из главных причин популярности Python среди разра- ботчиков — удобочитаемость кода. Весь код хорошо чита- ется, а следовательно, его легко поддерживать. Удобочитае- мость способствует повышению качества кода, написанного на Python, а качество сокращает время отладки. Портируемость Python Еще одна важная особенность Python — выполнение в любой операционной системе — позволяет легко развер- нуть код в разных системах всего за несколько часов. Чтобы программы Python заработали, от пользователя потребуется лишь установить интерпретатор в своей системе. Глава 1. Введение в Python 33 Например, если разработчик пишет Linux-программу для автоматизации управления базами данных SQL, то каждый пользователь, имеющий доступ к коду, сможет развер- нуть его на машине с Windows или Mac, изменив всего несколько компонентов кода. Превосходные специализированные библиотеки Чтобы любой язык программирования стал действи- тельно популярным в области современных технологий, ему необходимы хорошие библиотеки. Для Python написано очень много библиотек, с которыми можно экспериментировать. Кроме специализированных библиотек, в распоряжении программистов также имеются стандартные библиотеки, предоставленные основной командой разработки Python, — они тоже помогают создавать перспективные программы. Поддержка интеграции компонентов Python упрощает интеграцию нового кода с кодом, который был написан ранее. Благодаря расширенным возможно- стям интеграции компонентов Python хорошо подходит для реализации расширенных средств настройки для разных приложений. Интеграция компонентов также позволяет разработ- чикам добавлять новую функциональность в устаревшие программные продукты, чтобы они работали в новых версиях операционных систем. 34 PYTHON ЗА 7 ДНЕЙ Замечательное сообщество Вокруг Python сформировалось доброжелательное сооб- щество. Оно помогает новичкам справляться с пробле- мами, с которыми те сталкиваются при написании кода. Наряду с форумами Python существуют многочисленные ресурсы и руководства, написанные опытными программи- стами, которые помогают преодолевать любые препятствия в процессе разработки. В GitHub существует множество Python-проектов с открытым кодом. Любой программист может просмо- треть их, чтобы разобраться в реализации сложной логики в своем продукте. Глава 1. Введение в Python 35 Установка Python Чтобы установить программное обеспечение Python, сначала необходимо установить в системе интерпретатор Python. Без интерпретатора разработчик не сможет ни создавать, ни запускать программы на языке Python. Благодаря своей портируемости Python устанавливается в любой современной операционной системе. В этом разделе мы рассмотрим установку Python в трех операционных системах — Linux, Mac и Windows. Как установить Python в Linux Так как большинство программистов использует Linux в качестве основной операционной системы, начнем с установки Python на локальную машину с Linux. Linux — операционная система с открытым кодом, которая исполь- зуется в основном программистами и государственными организациями. Во многих дистрибутивах Linux Python устанавливается по умолчанию. Чтобы проверить, установлен ли Python в вашей системе Linux, откройте новый терминал командой Ctrl+Alt+N. Когда терминал откроется, введите следующую команду. КОД В ТЕРМИНАЛЕ: $ python --version Если Python установлен в вашей системе, терминал выведет лицензионную информацию для установленной версии. 36 PYTHON ЗА 7 ДНЕЙ Сообщение command not found 1 будет означать, что Python в вашей системе не установлен. В этом случае вы можете воспользоваться одним из менеджеров пакетов Linux для установки выбранного дистрибутива Python. Прежде чем устанавливать какие-либо программы в Linux, сначала обновите все служебные инструменты Linux и убедитесь в отсутствии конфликтов, которые могли бы помешать установке Python. КОД В ТЕРМИНАЛЕ: $ sudo apt update Эта команда может использоваться для обновления файлов пакетов, присутствующих в системе Linux на базе Debian. Если вы хотите обновить пакеты в системе на базе Arch, воспользуйтесь командой pacman. КОД В ТЕРМИНАЛЕ: $ sudo pacman -S После того как пакеты будут обновлены, введите одну из приведенных ниже команд для установки Python в системе Linux. КОД В ТЕРМИНАЛЕ ДЛЯ СИСТЕМ DEBIAN: $ sudo apt install python3 КОД В ТЕРМИНАЛЕ ДЛЯ СИСТЕМ ARCH: $ sudo pacman -S python3 1 «Команда не найдена». — Примеч. ред. Глава 1. Введение в Python 37 За информацией об установке Python в других дистри- бутивах Linux (например, Gentoo и kali) обращайтесь к официальной документации Python. Как установить Python в macOS Операционная система macOS используется в устрой- ствах, производимых компанией Apple. Так как система macOS строится с поддержкой UNIX, Python 2 часто устанавливается как часть встроенного программного обеспечения. Чтобы проверить, установлена ли поддержка Python в системе macOS на оборудовании Apple, откройте терминал командой SettingsUtilitiesTerminal. В открывшемся терминале введите следующую команду. КОД В ТЕРМИНАЛЕ: $ python3 --version Если на экране не появится сообщение с версией Python, это означает, что Python в вашей системе не установлен и вам придется установить его с нуля при помощи менед- жера пакетов Homebrew. КОД В ТЕРМИНАЛЕ: $ brew install python3 38 PYTHON ЗА 7 ДНЕЙ Как установить Python в Windows Windows — самая популярная операционная система в мире. Многие программисты и рядовые пользователи работают в Windows, потому что система проста в исполь- зовании и для нее написано множество приложений, упро- щающих развертывание кода Python-разработчикам. Чтобы установить Python в системе Windows, необхо- димо сначала загрузить исполняемый файл с официаль- ного сайта Python. После того как файл будет загружен, дважды щелкните на нем, чтобы установить программу. В некоторых версиях Windows также необходимо изменить переменные среды с помощью Панели управления (Control Panel), чтобы система работала со средствами разработки кода Python. После того как вы сделаете все необходимое, откройте окно командной строки и проверьте правильность установки интерпретатора Python. КОД В ТЕРМИНАЛЕ: >> python --version Если команда выводит информацию об установленной версии, значит, установка Python прошла успешно. В противном случае стоит поискать информацию об ошибке в Google или обратиться за помощью на форумы Python. Глава 2. PyСharm и IDLE 39 Глава 2 PyСharm и IDLE После установки программного обеспечения Python вам понадобится специализированная среда разра- ботки для создания программ в вашей системе. И хотя теоретически ничто не мешает работать в простейшей среде IDLE, входящей в базовую установку Python, программистам рекомендуется пользоваться интегрированной средой разработки (IDE, Integrated Development Environment), например PyCharm, чтобы рабочий процесс проходил на более высоком уровне. Интегрированные среды разра- ботки повышают производительность и упрощают отладку существующего кода в программных продуктах. Глава 2. PyСharm и IDLE 41 Преимущества интерпретатора Python Сильные стороны интерпретатора Python — его универ- сальность и высокий технологический уровень по срав- нению с традиционными компиляторами. Например, интерпретатор Python обеспечивает более короткое время ожидания, чем компиляторы. Если компиля- торы обрабатывают готовый код, в котором уже устра- нены ошибки, интерпретатор автоматически проверяет код во время его написания и сообщает программисту о возможных проблемах еще до начала обработки. Полу- чение информации об ошибках в реальном времени удобнее для начинающих программистов, которые учатся прямо в процессе программирования. При установке Python в системе наряду с основными программными средствами загружается среда IDLE (Integrated Development and Learning Environment). Чтобы запустить ее, введите команду idle в интерфейсе терминала, которым вы предпочитаете пользоваться. Если команда не сработала, IDLE можно найти в каталоге с дистрибу- тивом Python. IDLE использует механизм REPL1 для вывода результатов на экран компьютера. REPL — основной метод, который используется интерпретаторами Python для 1 REPL — сокращение от Read (прочитать ввод от пользователя), Eval (выполнить введенный код), Print (вывести на экран результат), Loop (снова войти в режим ожидания). — Примеч. ред. 42 PYTHON ЗА 7 ДНЕЙ проверки/разбора введенных команд и вывода результатов на основании пользовательского ввода. Python IDLE может стать отличным инструментом для тех, кто только начинает осваивать программирование. И хотя большинство серьезных проектов разработки корпора- тивного ПО ведется в таких интегрированных средах, как PyСharm, знание Python IDLE поможет вам понять, как работает механизм интерпретации Python. Глава 2. PyСharm и IDLE 43 Как использовать оболочку Python IDLE После того как Python будет установлен в вашей системе, откройте терминал или командную строку и введите следу- ющую команду, чтобы запустить IDLE. КОМАНДА: $ idle При нажатии клавиши Enter или Return открывается новая командная оболочка. >>> В ней можно ввести простейшие арифметические выра- жения или команду print, чтобы проверить работоспо- собность Python IDLE в вашей системе. ПРОГРАММНЫЙ КОД1: >>> print("This is a sample to check functioning of IDLE") ВЫВОД: This is a sample to check the functioning of IDLE 1 Здесь и далее значок показывает перенос строк кода, которые не помещаются на ширину печатной страницы. Следует иметь в виду, что в PEP-8 (руководство по стилю Python) не рекомендуется писать строки кода длиннее чем 79 символов. — Примеч. ред. 44 PYTHON ЗА 7 ДНЕЙ Нажатие клавиши Enter переводит программу в режим REPL, а текст, заключенный в кавычки, выводится на экран. IDLE распознает функцию print(), используемую для вывода строк в окне командной оболочки. Также для проверки IDLE можно воспользоваться ариф- метическими операциями. ПРОГРАММНЫЙ КОД: >>> 2 + 5 ВЫВОД: 7 Упражнение Самостоятельно проверьте вывод других арифметических операций (например, умножения и деления) в окне IDLE. ПРИМЕЧАНИЕ Помните, что весь код будет уничтожен сразу же после выхода из окна оболочки, а значит, весь вве- денный код необходимо сохранить в Python-файле. Глава 2. PyСharm и IDLE 45 Как открыть файл Python в IDLE IDLE предоставляет возможность открывать и читать уже существующие файлы c кодом Python (с расширением.py) прямо в терминале. Помните, что приведенная команда сработает только в том случае, если выполнить ее из ката- лога с файлом Python. ПРОГРАММНЫЙ КОД: $ idle имя_файла.py Эта команда открывает файл с предварительно напи- санным кодом, чтобы программист мог прочитать его. Обратите внимание: IDLE умеет автоматически подсвечивать элементы синтаксиса; IDLE помогает разработчику в написании кода, давая подсказки; IDLE упрощает расстановку отступов в коде. Также можно воспользоваться средствами графического интерфейса — для этого в левом верхнем углу окна оболочки IDLE выберите FileOpen , а затем найдите нужный Python-файл. Как редактировать файлы После того как файл будет открыт в IDLE, вы можете приступить к редактированию кода. IDLE отображает 46 PYTHON ЗА 7 ДНЕЙ нумерацию строк программы, что позволяет разработ- чику легко работать с кодом без отступов. После того как файл будет отредактирован, используйте клавишу F5 или щелкните по RunRun Module для выполнения кода в терминале. Если в файле нет ошибок, вы получите результаты его выполнения, а если есть — на экране появляется содер- жимое стека с ошибками. Хотя среда Python IDLE уступает более современным средам разработки, представленным на рынке, она оста- ется отличным средством отладки. IDLE предоставляет несколько функций быстрой отладки, таких как разме- щение конечных точек, перехват исключений и разбор кода. Впрочем, эта среда неидеальна и с ростом библиотеки вашего проекта могут возникнуть проблемы. Пожалуй, при всей своей примитивности IDLE остается лучшим инструментом разработки для начинающих. Упражнение Создайте в Python IDLE программу для суммирования двух чисел. Выполните отладку с использованием точек останова. При решении этой простой задачи можно поль- зоваться любыми источниками информации в интер- нете, если какие-то концепции программирования вам неизвестны. Глава 2. PyСharm и IDLE 47 Интегрированная среда разработки (IDE) Оболочка Python IDLE не справляется с требованиями сложных проектов, поэтому ее не рекомендуется исполь- зовать в реальной разработке. Вместо этого разработ- чики создают программный код в специализированных программных системах, которые называются интегриро- ванными средами разработки или IDE. Интегрированные среды разработки предоставляют средства тесной инте- грации с различными библиотеками. Возможности IDE Простая интеграция с библиотеками и фрейм- ворками Одно из важнейших преимуществ IDE — простота инте- грации библиотек и фреймворков в приложениях. В IDLE вам пришлось бы подключать их вручную при каждом использовании; IDE выполняет рутинные операции за вас с помощью автозаполнения команд импортирования. Многие IDE также обеспечивают прямую интеграцию с репозиториями git. Интеграция с объектно-ориентированным проекти- рованием Многие программисты Python, занимающиеся разработкой приложения, используют объектно-ориентированную 48 PYTHON ЗА 7 ДНЕЙ парадигму. Python IDLE не предоставляет никаких средств, которые бы упрощали создание приложений на базе прин- ципов объектно-ориентированного программирования. Все современные интегрированные среды предоставляют такие средства, как диаграммы иерархий классов, которые помогают построить более совершенную программную логику на начальном этапе работы над проектом. Подсветка синтаксиса Подсветка синтаксиса улучшает производительность работы программистов и помогает им избежать простых и очевидных ошибок. Например, зарезервированные ключевые слова (if и т. д.) не могут использоваться в каче- стве имен переменных. IDE автоматически распознает эту ошибку и привлекает к ней внимание разработчика при помощи подсветки элементов синтаксиса. Автозавершение кода Во всех современных IDE применяются передовые методы искусственного интеллекта и машинного обучения, которые автоматически завершают программные конструкции за разработчика. IDE собирает большой объем информации из используемых пакетов и предлагает разработчику разные переменные и методы в зависимости от ввода и логики, над которой он работает. Впрочем, при всей полезности автоза- вершения никогда не стоит полностью полагаться на него, так как иногда оно нарушает ход выполнения программы и порождает ошибки. Глава 2. PyСharm и IDLE 49 Управление версиями Управление версиями — один из главных источников проблем для разработчиков. Например, если вы исполь- зуете в своем приложении частные библиотеки и фрейм ворки, их обновления могут привести к сбоям в работе приложения. Вам как разработчику необходимо знать об этих изменениях и реализовывать новую логику выпол- нения, чтобы приложение продолжало работать. Меха- низм управления версиями позволяет разработчикам легко обновлять код приложений без нарушения уже написанной логики. IDE предоставляет механизмы интеграции управ- ления версиями с такими веб-сайтами, как GitHub. Кроме этой функциональности, IDE также могут предо- ставлять различные средства отладки для разработчиков. PyСharm и Eclipse — самые популярные IDE для Python, доступные как для независимых разработчиков, так и для организаций. В данной книге мы будем в основном использовать PyCharm, так как эта интегрированная среда намного эффективнее Eclipse и проще в настройке. 50 PYTHON ЗА 7 ДНЕЙ PyCharm PyCharm — специализированная IDE для языка Python — создана JetBrains, одной из передовых компаний в области разработки ПО. Изначально PyCharm разрабатывалась командой JetBrains с целью управления IDE для других языков программирования. Позднее команда JetBrains выпустила PyCharm как отдельный продукт для пользователей всего мира. Среда PyCharm доступна для всех популярных операционных систем в двух версиях — Community и Professional. Community — бесплатная версия с открытым кодом, которая может использоваться любым желающим для написания кода на Python. Впрочем, она обладает ограниченной функциональностью, особенно в отношении управления версиями и интеграции со сторонними библиотеками. Professional — платная IDE, предоставляющая разработ- чикам расширенную функциональность и многочисленные возможности интеграции. В версии Professional разработ- чики могут легко создавать веб-приложения или прило- жения обработки/анализа данных. Какие возможности доступны в PyСharm Популярность среды PyСharm отчасти обусловлена и другими уникальными возможностями, которые она предоставляет разработчикам Python. Глава 2. PyСharm и IDLE 51 Редактор кода Редактор кода, поставляемый с Pycharm, — один из самых лучших в отрасли. Его мастерство в автозавершении кода производит впечатление на каждого, кому довелось работать с новыми проектами в этом редакторе. Специ- алисты JetBrains использовали сложные модели машин- ного обучения и наделили среду IDE достаточно высоким интеллектом, чтобы она понимала сложные программные блоки и предоставляла рекомендации для пользователя. Если вы серьезно занимаетесь разработкой, редактор PyСharm можно настроить для более удобного просмотра кода. Светлая и темная темы оформления позволяет поль- зователю выбрать внешний вид под свое настроение. Навигация по коду В PyСharm программист может легко управлять файлами, образующими сложную иерархическую систему. Такие специальные возможности, как закладки и режим увели- чения, помогают эффективно управлять важнейшими программными блоками и логикой кода. Мощные средства рефакторинга PyСharm предоставляет мощные средства рефакторинга, чтобы разработчик мог легко изменять имена файлов, классов или методов без нарушения работоспособности программы. Если вы попытаетесь провести рефакторинг в IDLE, код немедленно перестает работать, потому что 52 PYTHON ЗА 7 ДНЕЙ стандартная оболочка Python IDLE не понимает различий между старыми и новыми именами. Многие разработчики Python применяют средства рефак- торинга для обновления кода или при переходе на новую стороннюю библиотеку, которая лучше подходит для одного из их программных компонентов. Интеграция с веб-технологиями Многие Python-разработчики работают в области веб-техно- логий, так как она формирует значительную часть индустрии программирования. PyСharm позволяет разработчикам легко интегрировать продукты с такими веб-фреймворками Python, как Django. PyСharm также понимает код HTML, CSS и JavaScript, который обычно используется веб-разра- ботчиками при создании веб-сервисов. Все эти возможности упрощают интеграцию существую- щего кода с фреймворками Python. Интеграция с научными библиотеками Среда PyСharm также известна своей качественной поддержкой библиотек для научных и сложных математи- ческих расчетов, таких как SciPy и NumPy. И хотя PyCharm не заменит интеграцию и очистку да