Python за 7 дней. Краткий курс для начинающих [Эндрю Парк] (pdf) читать онлайн

Книга в формате pdf! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]

ЭНДРЮ ПАРК

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 англ.
ISBN 978-5-4461-2057-4 рус.



© 2022
© Перевод на русский язык ООО «Прогресс книга», 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. Заказ

Содержание
Введение. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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

СОДЕРЖАНИЕ

Комментарии в 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

7

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

СОДЕРЖАНИЕ

Кортежи...................................................................................... 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

9

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

СОДЕРЖАНИЕ

Как создать класс в 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

11

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

Содержание

Разбивайте задачу................................................................ 248
Найдите свою нишу............................................................... 249
Ошибки бывают полезными................................................. 249
Изучайте алгоритмы............................................................. 249
Начните пользоваться GitHub............................................... 250
Не перенапрягайтесь............................................................ 250
Изучите механизмы тестирования........................................ 251
Соблюдайте баланс между работой
и личной жизнью............................................................... 251

Что дальше. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
Благодарности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254

13

PYTHON ЗА 7 ДНЕЙ

Введение

Компьютеры помогли миру выйти на новый технологический уровень. С нынешнем уровнем производительности и надежности они уже правят миром. Хотя
компьютеры иногда называют глупыми машинами,
они могут делать то, для чего предназначены, практически идеально. Чтобы компьютеры стали такими
производительными, люди, которых мы сегодня
называем разработчиками, общались с ними на
разных языках программирования годами. Существует несколько разновидностей языков программирования. Подобно тому как люди используют
разные языки для разговора в зависимости от
региона, компьютеры и разработчики используют языки программирования в зависимости от
системы, в которой они работают.
В компьютерной отрасли существует много высокоуровневых языков программирования, но Python
особенно популярен и удобен для начинающих. Эта
книга, доступно объясняющая базовые идеи Python,
поможет начинающим войти в IT-сферу, даже если
у них вообще нет опыта программирования.

16

PYTHON ЗА 7 ДНЕЙ

Что такое Python
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

Чтобы получить максимум пользы от книги, рекомендую
некоторые приемы когнитивного обучения, которые
повысят эффективность усвоения материала.
„ Используйте графические схемы связей для установления соответствия между различными концепциями
и их быстрой реализации в ваших проектах. Графические
схемы связей с помощью наглядного представления на
тривиальных диаграммах позволяют запомнить большой
объем данных.
„ Используйте мнемонические приемы (такие как «дворец
памяти» или «метод локусов») для осмысленного запоминания данных. Примитивная зубрежка очень сильно
отличается от запоминания только необходимой информации с применением когнитивных методов.
„ Используйте метод пассивного повторения для быстрого
возвращения ко всем темам, которые вы узнаете из книги.
Пассивное повторение поможет закрепить основы.
„ Используйте метод Фейнмана и объясните все базовые
концепции программирования, о которых вы узнаете
в книге, кому-то, кто не разбирается в теме. Если вы
сможете объяснить концепцию простыми словами,
значит, вы достаточно хорошо усвоили основные
положения.
„ Не ограничивайтесь использованием кода, приведенного в книге. Реализуйте собственный код с использованием аналогичных стратегий. Простое копирование
не научит вас создавать собственный код.

PYTHON ЗА 7 ДНЕЙ

20

Python — язык программирования, который ожидает
от вас нового подхода. Отнеситесь к кодированию на
Python как к головоломке, и вскоре вы найдете способы
заставить ваш мозг создавать сложную логику реальных
задач. Эта книга поможет вам эффективно освоить
программирование на языке Python. И я собираюсь
отправиться в это путешествие вместе с вами. Готовы?

Чем вы можете помочь этой книге
Написать эту книгу было непросто. Иногда мне кажется,
что провести много часов за отладкой проще, чем написать книгу. Не буду скрывать, что впервые в своей жизни
я испытывал состояние творческого тупика. Думаю, это
в основном объяснялось необъятностью тем, которые
размещались у меня в голове. Тем не менее изложить их
в логичном, компактном и упорядоченном виде оказалось
намного сложнее.
Стоит упомянуть о том, что я предпочитаю обходиться без
услуг издательств. Таким образом, я могу называть себя
«независимым автором». Это мое личное решение.
Но теперь я с гордостью могу сказать, что моя одержимость идеей помочь тем, кто делает первые шаги в мире
программирования, победила. Мне доставит огромное
удовольствие, если вы оставите положительный отзыв
на Amazon. Для меня это очень много значит, и такие
отзывы сильно помогут в распространении материала.
Приятного чтения!

Глава 1. Введение в Python

Глава 1
Введение в Python

21

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 установлен в вашей системе, терминал
выведет лицензионную информацию для установленной
версии.

PYTHON ЗА 7 ДНЕЙ

36

Сообщение 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, откройте
терминал командой SettingsUtilitiesTerminal.
В открывшемся терминале введите следующую команду.
КОД В ТЕРМИНАЛЕ:
$ python3 --version

Если на экране не появится сообщение с версией Python,
это означает, что Python в вашей системе не установлен
и вам придется установить его с нуля при помощи менеджера пакетов Homebrew.
КОД В ТЕРМИНАЛЕ:
$ brew install python3

PYTHON ЗА 7 ДНЕЙ

38

Как установить Python в Windows
Windows — самая популярная операционная система
в мире. Многие программисты и рядовые пользователи
работают в Windows, потому что система проста в использовании и для нее написано множество приложений, упрощающих развертывание кода Python-разработчикам.
Чтобы установить Python в системе Windows, необходимо сначала загрузить исполняемый файл с официального сайта Python. После того как файл будет загружен,
дважды щелкните на нем, чтобы установить программу.
В некоторых версиях Windows также необходимо изменить
переменные среды с помощью Панели управления (Control
Panel), чтобы системаработала со средствами разработки
кода Python.
После того как вы сделаете все необходимое, откройте окно
командной строки и проверьте правильность установки
интерпретатора Python.
КОД В ТЕРМИНАЛЕ:
>> python --version

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

Глава 2. PyСharm и IDLE

Глава 2
PyСharm и IDLE

39

После установки программного обеспечения 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 символов. — Примеч. ред.

PYTHON ЗА 7 ДНЕЙ

44

Нажатие клавиши 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 выберите FileOpen , а затем найдите нужный
Python-файл.

Как редактировать файлы
После того как файл будет открыт в IDLE, вы можете
приступить к редактированию кода. IDLE отображает

46

PYTHON ЗА 7 ДНЕЙ

нумерацию строк программы, что позволяет разработчику легко работать с кодом без отступов. После того
как файл будет отредактирован, используйте клавишу F5
или щелкните по RunRun 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
не заменит интеграцию и очистку данных, она поможет
создать базовую псевдологику для всех проектов обработки
и анализа данных.

Тестирование
PyCharm позволяет применять высокоуровневые стратегии модульного тестирования даже в больших и сложных

Глава 2. PyСharm и IDLE

53

проектах с множеством участников. Среда предоставляет
современные средства отладки и удаленной настройки для
рабочих процессов альфа- и бета-тестирования.

Как работать с PyCharm
Хочется надеяться, что мне удалось убедить вас в том,
что PyCharm является важнейшим инструментом разработки. В этом подразделе приводится информация, которая
поможет вам установить PyCharm и понять, как использовать эту среду для совершенствования процессов управления проектами Python.

Шаг 1. Установка PyСharm
Установка PyСharm в любой операционной системе про­
ходит достаточно прямолинейно. От вас потребуется
лишь загрузить пакет установки с официального сайта
или с помощью одного из менеджеров пакетов.
Зайдите на официальный веб-сайт JetBrains1, в меню
Developer Tools перейдите на страницу PyCharm и нажмите
кнопку Download. Загрузите исполняемый файл или файл
dmg (в зависимости от операционной системы) и после
завершения загрузки щелкните на нем; затем выполните
инструкции, появившиеся на экране.

1

www.jetbrains.com — Примеч. ред.

54

PYTHON ЗА 7 ДНЕЙ

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

ПРИМЕЧАНИЕ
Чтобы успешно установить среду PyСharm IDE
в вашу систему, необходимо убедиться в том, что
Python был установлен правильно. Процесс установки IDE автоматически определяет путь к Python
для установки основных библиотек продукта.

Шаг 2. Создание нового проекта
После того как среда PyСharm будет установлена, откройте
ее из меню приложений или воспользуйтесь ярлыком
на рабочем столе. После запуска PyСharm открывается
новое окно для создания проекта с нуля. В левом верхнем
углу программного интерфейса расположена команда
для открытия нового проекта (File). Также там находятся
команды импортирования и экспортирования для загрузки
существующих проектов и быстрого сохранения текущих.
Каждый раз, когда вы впервые открываете проект в PyCharm,
вам предлагается выбрать интерпретатор Python, который
будет использоваться для всех программных операций. Если
вы не уверены в том, где находится интерпретатор Python,

Глава 2. PyСharm и IDLE

55

выберите вариант virtualenv — в этом случае среда проведет
автоматический поиск в системе и найдет интерпретатор
Python за вас.

Шаг 3. Структура проектов PyСharm
Когда вы начинаете проект в PyСharm, очень важно создавать новые папки и ресурсы для ваших программных
файлов, чтобы упростить доступ к ним.
Выберите команду new-->folder, чтобы создать новую папку
в интерфейсе проекта. В ней можно разместить любые
Python-скрипты или дополнительные файлы, используе­
­мые в программе.
Каждый раз, когда вы создаете новый файл в отдельной
папке, ему присваивается расширение .py. Если вы захотите создать отдельные файлы классов или шаблонов,
необходимо явно сообщить об этом при создании файла
в папке.

Шаг 4. Расширенные возможности PyСharm
Когда код написан и интегрирован, вы сможете легко
открыть встроенный интерфейс IDLE или специальный
интерфейс вывода PyСharm.
Весь написанный вами код будет автоматически сохраняться
в реальном времени, а значит, вам не придется беспокоиться
о потере критических данных проекта из-за плохого сетевого
подключения или сбоя питания. От вас потребуется лишь
нажать клавиши Ctrl+S или Cmd+S для сохранения копии
проекта в локальной системе.

56

PYTHON ЗА 7 ДНЕЙ

Завершив работу над программой, нажмите Shift+F10,
чтобы запустить и скомпилировать код с помощью
интерпретатора.
Комбинации клавиш Ctrl+F или Cmd+F используются для
поиска любых методов, переменных или фрагментов,
применяемых в проекте. Просто нажмите клавиши
и введите уточняющую информацию о том, что вы ищете.
После того как код Python будет импортирован и развер­нут
в нужной операционной системе, следует настроить среду
отладки для устранения ошибок. Просто нажмите клавиши
Shift+F9, чтобы установить точки останова и исправить
логические ошибки без нарушения программной логики
или внесения новых дефектов.

Глава 2. PyСharm и IDLE

57

Руководство по стилю Python
Программирование Python стало чрезвычайно популярным среди программистов из-за философии, которую
поддерживал и продолжает поддерживать этот язык.
Python стремился к простоте там, где другие высоко­
уровневые языки напрасно усложняют задачу для среднего программиста. Perl — прекрасный пример такого
неудобного языка.
Создатели Python предлагали первым энтузиастам-питонистам следовать простому набору четко сформулированных принципов (объединенных под названием
«Дзен Python») для создания кода, который не только
хорошо работает, но и хорошо выглядит. Даже через 20 лет
после публикации эти принципы остаются актуальными,
и каждый программист Python должен знать их.
Чтобы прочитать формулировку этих принципов, введите
в терминале следующий код.
КОД В ТЕРМИНАЛЕ:
$ python
$ import this

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

58

PYTHON ЗА 7 ДНЕЙ

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

Глава 2. PyСharm и IDLE

59

в котором позднее могут обнаружиться коварные ошибки,
к минимуму.
„ Должно быть одно — и желательно только одно —
очевидное решение.
Python поощряет единообразие, в отличие от своих
языков-предшественников C и C++. Python-разработчик
использует одну логику для разных экземпляров, которые
использовались в программе. Единообразие обеспечивает
гибкость и упрощает поддержку кода.

Глава 3
Основы Python

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

62

PYTHON ЗА 7 ДНЕЙ

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

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

Глава 3. Основы Python

63

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

PYTHON ЗА 7 ДНЕЙ

64

Функция input()
Если вызвать функцию input() во время выполнения
программы Python, интерпретатор приостанавливает
работу и ожидает, когда пользователь введет данные
с устройства ввода (с помощью клавиатуры, мыши или
на сенсорном экране мобильного устройства).
При вводе данных пользователь обычно руководствуется
подсказкой, которая выдается приложением. При разработке реальных приложений необходимо создать хороший
графический интерфейс для вывода подсказок. В этой главе
мы рассмотрим некоторые варианты создания текстовых
подсказок, которые могут использоваться разработчиками.
После того как данные будут введены, пользователь должен
нажать клавишу Enter, чтобы интерпретатор возобновил
работу и обработал логические конструкции, использованные в программе.
ПРИМЕР:
sample = input("Which country do you belong to?: ")
print(sample + " is a great country"))

Если запустить эту программу, пользователь сначала
увидит текст подсказки, как показано ниже.
ВЫВОД:
Which country do you belong to?: China
China is a great country

Глава 3. Основы Python

65

Попробуйте ввести название другой страны и посмотрите,
что произойдет.
ВЫВОД:
Which country do you belong to?: France
France is a great country

Как составлять подсказки
для пользователя
При применении функции input() для получения данных
от пользователя желательно использовать содержательные
подсказки, чтобы привлечь внимание.
ПРИМЕЧАНИЕ
Не включайте в текст лишнюю информацию. Подсказки должны быть по возможности простыми
и короткими.

ПРОГРАММНЫЙ КОД:
example = input("Which is your favorite football
 team?: ")
print("So you are a "+ example + " fan. Hurray!")

PYTHON ЗА 7 ДНЕЙ

66

ВЫВОД:
Which is your favorite football team?: Liverpool
So you are a Liverpool fan. Hurray!

Функция input() также может выводить подсказки, состоящие из нескольких строк.
ПРОГРАММНЫЙ КОД:
prompt = "This is a simple question to know what
 you like."
prompt += "\nSo, please say your favorite place: "
example = input(prompt)
print(example + " is a great place to visit")
ВЫВОД:
This is a simple question to know what you like
So, please say your favorite place: Paris
Paris is a great place to visit

С самого начала книги мы будем использовать функцию
print() для вывода результатов. print() — один из рекомендуемых способов вывода текста на экран.
Любая информация, переданная функции print(), преобразуется в строковый литерал и выводится на экран. Знать
аргументы функции print() обычно не обязательно, но
некоторые из них помогут вам в форматировании кода,
и их желательно изучить.

Глава 3. Основы Python

67

Что такое экранированная
последовательность
Экранированные последовательности — особые серии
символов, предназначенные для быстрого форматирования
данных. Например, \n — часто используемая последовательность, которая позволяет вывести данные с новой
строки.
\t и \b — еще две популярные экранированные последовательности. \t позволяет выводить данные со следующей позиции табуляции, а \b удаляет один символ перед
курсором. Если последовательность \b находится в конце

строки, удаления не происходит.

Для чего нужна команда end
Функция print() также принимает аргумент end для
текста, который добавляется после строки, как в следующем примере.
ПРОГРАММНЫЙ КОД:
print("France is a beautiful country,", end=" Isn't
 it true?")
ВЫВОД:
France is a beautiful country, Isn't it true?

В этом примере 'Isn't it true' — присоединенный текст.

68

PYTHON ЗА 7 ДНЕЙ

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

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

Глава 3. Основы Python

69

ПРОГРАММНЫЙ КОД:
# Пример однострочного комментария
print("This is just an example.")
ВЫВОД:
This is just an example.

Интерпретатор проигнорировал однострочный комментарий и выполнил только команду print.

Для чего используются однострочные комментарии
Однострочные комментарии используются прямо в коде.
Они помогают другим программистам понять, как работает логика программы, и описывают назначение реализованных переменных.

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

PYTHON ЗА 7 ДНЕЙ

70

ПРОГРАММНЫЙ КОД:
"""
This is a comment
In Python
with multiple lines
Author: Python Rookie
"""
print("This is just an example.")
ВЫВОД:
This is just an example.

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

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

Глава 3. Основы Python

71

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

Упражнение
Чтобы лучше понять суть команд Python, которые приводились ранее, попробуйте самостоятельно найти ключевые
слова Python в терминале.

PYTHON ЗА 7 ДНЕЙ

72

Операторы Python
Программисты обычно используют операторы для совершения различных операций и формирования команд или
выражений.
ПРИМЕР:
2x + 3z = 34

Здесь 2x, 3z и 34 — операнды, а + и = — операторы, используемые с операндами для формирования выражения.
Изначально операторы использовались в математике для
построения математических выражений. Первые пользователи языков программирования позаимствовали операторы
и некоторые другие базовые компоненты программирования
для удобства присваивания и изменения значений. Операторы позволяют создавать сложные выражения, которые
помогают программистам в реализации нетривиальных
алгоритмов.
ПРИМЕР:
a = 32
b = 34
print(a + b)
ВЫВОД:
66

Здесь a и b — операнды, а = и + — операторы.

Глава 3. Основы Python

73

Разновидности операторов
Существует несколько разновидностей операторов,
которые используются программистами для реализации
программной логики. Самая популярная категория — арифметические операторы, позволяющие реализовать математическую логику для разных операндов например переменных,
определяемых в коде.
Операторы сложения, вычитания, умножения и деления —
арифметические операторы, которые нужны для реализации
простейших вычислений в программе.

Сложение
Оператор сложения предназначен для суммирования двух
операндов в программе. Операндами могут быть переменные
и объекты разных типов; кроме того, в некоторых случаях
возможно суммирование данных двух отличающихся типов.
Интерпретатор Python достаточно разумен, чтобы выполнить необходимое преобразование типа и предоставить
результат программисту. Оператор сложения обозначается
символом +.
ПРОГРАММНЫЙ КОД:
x = 54
y = 34
z = x + y
# Знак + является оператором сложения
print(z)

PYTHON ЗА 7 ДНЕЙ

74

При выполнении программы в IDE или IDLE интерпретатор суммирует значения двух переменных и сохраняет
результат в переменной z.
ВЫВОД:
88

Вычитание
Оператор вычитания вычитает одно значение из другого.
Операндами могут быть переменные и объекты разных
типов; кроме того, в некоторых случаях возможно вычитание данных двух отличающихся типов. Оператор вычитания обозначается символом -.
ПРОГРАММНЫЙ КОД:
x = 54
y = 34
z = x - y
# Знак - является оператором вычитания
print(z)

При выполнении программы в IDE или IDLE интерпретатор вычисляет разность двух операндов и сохраняет ее
в переменной z.
ВЫВОД:
20

Глава 3. Основы Python

75

Умножение
Оператор умножения вычисляет произведение двух
значений в программе. Операндами могут быть переменные
и объекты разных типов; кроме того, в некоторых случаях
возможно умножение данных двух отличающихся типов.
Операция умножения обозначается символом *.
ПРОГРАММНЫЙ КОД:
x = 5
y = 3
z = x * y
# Знак * является оператором умножения
print(z)

При выполнении программы в IDE или IDLE интерпретатор вычисляет произведение двух операндов и сохраняет
его в переменной z.
ВЫВОД:
15

PYTHON ЗА 7 ДНЕЙ

76

Деление
Оператор деления вычисляет частное двух операндов.
Операндами могут быть целые числа и числа с плавающей
точкой, а оператор деления обозначается символом /.
ПРОГРАММНЫЙ КОД:
x = 6
y = 3
z = x / y
# Знак / является оператором деления
print(z)

При выполнении программы в IDE или IDLE интерпретатор вычисляет частное двух операндов и сохраняет его
в переменной z.
ВЫВОД:
2.0

Глава 3. Основы Python

77

Остаток от деления
Данный оператор определяет остаток от целочисленного деления. Вычисление остатка часто применяется
в программной логике и осуществляется с помощью
символа %.
ПРОГРАММНЫЙ КОД:
x = 7
y = 3
z = x % y
# Знак % — оператор вычисления остатка от деления
print(z)

При выполнении программы в IDE или IDLE интерпретатор вычисляет остаток от целочисленного деления двух
операндов и сохраняет его в переменной z.
ВЫВОД:
1

В данном случае частное от деления двух чисел равно 2,12,
а остаток от целочисленного деления равен 1, поэтому это
число выводится как результат работы программы.
Чтобы получить результат деления без дробной части,
используйте операцию целочисленного деления.

PYTHON ЗА 7 ДНЕЙ

78

Целочисленное деление
Целочисленное деление — альтернативный арифметический оператор, который часто используется разработчиками, если для них не важна точность результата.
Обычно этот оператор выводит целочисленное значение,
ближайшее к частному, получаемому в результате деления.
Оператор целочисленного деления обозначается символами //.
ПРОГРАММНЫЙ КОД:
x = 12
y = 5
z = x // y
# Оператор целочисленного деления — //
print(z)
ВЫВОД:
2

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

Глава 3. Основы Python

79

Побитовые операторы
Побитовые операторы часто используются опытными
программистами в таких специальных областях, как
сжатие, шифрование и обнаружение ошибок.
Во всех высокоуровневых языках программирования
поддерживаются следующие побитовые операторы.
1. AND (&)
2. OR (|)
3. XOR (^)
4. NOT (~)
Все эти побитовые операторы работают по принципам,
которые должны быть известны вам по традиционной
(булевой) логике.

80

PYTHON ЗА 7 ДНЕЙ

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

Правила приоритета операторов в Python
„ Если в выражении присутствуют операторы, заключенные в круглые скобки, то интерпретатор начинает
с применения этих операторов, а потом переходит
к остальным.
„ Затем выполняются побитовые операторы.
„ Далее по приоритету идут математические операторы
умножения и деления. Операторы *, /, % и // имеют
такой же приоритет.
„ На следующем уровне приоритета находятся остальные
арифметические операции, такие как сложение и вычитание (+ и –).
„ Самым низким приоритетом обладают операторы сравнения и логические операторы.

Глава 3. Основы Python

81

Упражнения
„ Напишите программу Python, которая получает данные
от пользователя. Выполните с полученными данными
различные арифметические операции (умножение,
деление и т. д.). Также можете вычислить остаток от
деления.
„ Напишите команду print(), которая выводит на экран
ваше любимое стихотворение.
„ Напишите программу Python для преобразования десятичного числа в шестнадцатеричное.
„ Напишите программу Python, которая получает от пользователя три числа и сохраняет их в переменных x, y и z,
а затем вычисляет значение выражения x^2 (2y + 5z).

Глава 4
Переменные
в Python

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

84

PYTHON ЗА 7 ДНЕЙ

Что такое переменные
Эффективная обработка данных — неотъемлемая часть
любой программы. Как пользователи, так и программы
взаимодействуют через данные. Без данных приложения
не будут иметь смысла и ценности для конечного пользователя. В частности, переменные используются для отправки
и получения данных по сети.
Концепция переменных изначально появилась в области
математики, которая называется алгеброй. Переменные
применяются в ней для определения значений. Так что это
понятие не является новшеством языка программирования
Python. С первых дней существования высоко­уровневых
языков программирования переменные использовались
для хранения данных в конкретной ячейке памяти компьютера. Первые программисты сталкивались с определенными
неудобствами при чтении данных по конкретному адресу
памяти компьютера, и они позаимствовали концепцию
переменных из алгебры, чтобы хранить значения в памяти
компьютера и использовать их тогда, когда потребуется.
Возьмем математическое выражение 2x + 3y.
1. Если x = 3 и y = 4, то результат выражения равен 18.
2. Если x = 2 и y = 6, то результат выражения равен 22.
Аналогичным образом вывод программы зависит от
значения переменной, которое можно легко изменить. Если
значение какой-то переменной не должно изменяться во
время выполнения программы, в терминологии программирования такая переменная называется константой.

Глава 4. Переменные в Python

85

Чтобы понять, как работают переменные, необходимо
сначала понять, как происходит выполнение программ
Python. Чтобы объяснение стало более наглядным,
я воспользуюсь командой print.
ПРОГРАММНЫЙ КОД:
print("This is a sample analysis.")
ВЫВОД:
This is a sample analysis.

В этом примере при выполнении команды print результат
немедленно выводится на экран, но, кроме того, происходят многие вещи, которые остаются незаметными для
пользователя.

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

PYTHON ЗА 7 ДНЕЙ

86

„ В приведенном выше примере при разборе команды
print интерпретатор немедленно узнает, что речь идет
об одном из основных методов, определенных в библиотеке Python, и выводит на экран строковый литерал,
который был заключен в круглые скобки.
Если вы в полной мере понимаете вышеприведенное объяснение, можно переходить к использованию переменных
в Python.
ПРОГРАММНЫЙ КОД:
program = "This is a sample analysis."
print(program)
ВЫВОД:
This is a sample analysis.

Как работает код
„ При запуске программы интерпретатор обычно разбирает все строки кода, написанные программистом.
„ Вместо команды print, за которой следует блок текста,
интерпретатор теперь видит идентификатор­— переменную с именем program. Интерпретатор просматривает предшествующий код и видит, что переменная
уже инициализирована некоторым текстом и хранится
в определенной ячейке памяти.

Глава 4. Переменные в Python

87

„ Интерпретатор выводит переменную на экран, как
того требует программист. Для этого он читает данные,
хранящиеся в переменной.
Все переменные работают по этой базовой схеме, даже
если они используются в сложной программной логике.
Значение переменной можно легко изменить. Этот факт
очень важен для программистов Python, потому что все
динамические программы изменяют значения своих переменных в соответствии с данными, введенными пользователем, и это может происходить даже непосредственно во
время выполнения программы.
ПРОГРАММНЫЙ КОД:
sample = "This is an example"
print(sample)
sample = "This is a second example"
print(sample)
ВЫВОД:
This is an example
This is a second example

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

88

PYTHON ЗА 7 ДНЕЙ

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

Правила выбора имен переменных
„ Согласно правилам Python, имена переменных могут
содержать только цифры, алфавитные символы
и символы подчеркивания. Например, строка sample1
может использоваться как имя переменной, а строка
$sample1 именем переменной быть не может, потому
что она начинается с запрещенного символа $.
„ Имя переменной в языке Python не может начинаться
с цифры. Например, строка sample1 соответствует
формату имен переменных, а строка 1sample именем
переменной быть не может.
„ Вкачестве имен переменных запрещено использовать зарезервированные слова, предназначенные для
выполнения различных программных процедур в коде
Python. В настоящее время существует около 30 таких
ключевых слов, например, к ним относится for.

Глава 4. Переменные в Python

89

„ Хотя это не является жестким требованием, для лучшей
читаемости рекомендуется отдавать предпочтение
присвоению переменным простых имен. Сложные или
запутанные имена загромождают код. Хотя практика
длинных имен хорошо подходит для таких высоко­
уровневых языков, как C, C++ и Perl, язык Python не
разделяет эту философию.

PYTHON ЗА 7 ДНЕЙ

90

Как определить переменную
Всем переменным, определяемым в языке Python, необходимо присвоить исходное значение оператором присваивания (=) перед первым использованием.
СИНТАКСИС:
имя_переменной = значение_переменной
ПРИМЕР:
# Переменная с целым типом данных
example = 343
# Переменная со строковым типом данных type
example1 = "Russia"

В этом примере example­— имя создаваемой переменной,
а 343­— значение, присваиваемое ей при инициализации.
В приведенном выше способе определения переменной ее
тип данных не указывается явно­— Python достаточно умен,
чтобы определять типы данных автоматически.

Глава 4. Переменные в Python

91

Как узнать адрес переменной
в памяти
Каждая переменная хранится в конкретной ячейке памяти.
Каждый раз, когда в программе упоминается имя переменной, интерпретатор Python читает информацию, хранящуюся в соответствующей ячейке памяти. Если приказать
интерпретатору Python заменить значение переменной, он
просто запишет новое значение на место старого. Старое
значение будет уничтожено (или в отдельных случаях
сохранено механизмом сборки мусора для уничтожения
в будущем).
Такие языки программирования, как C, обычно используют
указатели для получения информации о место­нахождении
переменной в памяти. Однако в Python указатели не поддерживаются, так как часто их сложно реализовать. Кроме того,
требуется искусная компиляция, с чем интерпретатор не
всегда справляется.
Вместо этого для получения адреса переменной в памяти
разработчик Python может воспользоваться встроенной
функцией id().
ПРОГРАММНЫЙ КОД:
# Сначала создаем переменную
sample = 64
# Затем вызываем встроенную функцию id()
print(id(sample))
ВЫВОД:
1x37372829x

PYTHON ЗА 7 ДНЕЙ

92

Здесь 1x37372829x­— адрес переменной в памяти в шестнадцатеричном формате.
Теперь попробуем заменить значение переменной и проверить, изменился ли результат вызова id().
ПРОГРАММНЫЙ КОД:
sample = 64
print(id(sample))
# Значение переменной заменяется новым
sample = 78
# Снова выводим адрес переменной в памяти
print(id(sample))
ВЫВОД:
1x37372829x

Нетрудно заметить, что адрес переменной в памяти остался
прежним, а проверка с помощью print показывает, что
значение переменной действительно изменилось.
ПРОГРАММНЫЙ КОД:
sample = 64
print(id(sample))
sample = 78
print(sample)
ВЫВОД:
78

Глава 4. Переменные в Python

93

Локальные и глобальные
переменные в Python
В зависимости от логики, которую вы реализуете в своей
программе, переменные могут быть локальными или
глобальными. Теоретически локальные переменные могут
применяться только в конкретных функциях или классах,
в которых они были созданы. Глобальные переменные,
напротив, можно использовать в любой части программы
без каких-либо проблем. При обращении к локальной переменной за пределами функции, в которой она определяется, интерпретатор Python обычно выдает сообщение об
ошибке.
ПРОГРАММНЫЙ КОД:
# Пример функции с локальной переменной
def sample():
example = "This is a trail"
print(example)
sample()
ВЫВОД:
This is a trail

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

PYTHON ЗА 7 ДНЕЙ

94

ПРОГРАММНЫЙ КОД:
# Пример функции с локальной переменной
def sample():
example = "This is a trail"
print(example)
def second_sample():
# Обращение к переменной из другой функции
print(example)
second_sample()
ВЫВОД:
This is a trail
NameError: name 'example' is not defined

К глобальным же переменным можно обращаться из любой
части программы.
ПРОГРАММНЫЙ КОД:
# Создание глобальной переменной
example = "This is a trail"
def sample():
print(example)
def second_sample():
# Обращение из другой функции
print(example)
sample()
second_sample()

Глава 4. Переменные в Python

95

ВЫВОД:
This is a trail
This is a trail

Так как функции могут обращаться к глобальным переменным, в обоих случаях print выводит сообщение на
экран.

ПРИМЕЧАНИЕ
Выбор между локальными или глобальными переменными зависит исключительно от вас. Многие
программисты предпочитают локальные переменные, потому что с ними приложения выполняются быстрее. Если же вы хотите избежать хлопот
с управлением памятью, можно использовать глобальные переменные.

96

PYTHON ЗА 7 ДНЕЙ

Глава 5
Типы данных
Python

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

PYTHON ЗА 7 ДНЕЙ

98

Что такое типы данных
Типы данных представляют собой заранее определенные
интервалы значений, используемые программистами
при создании переменных. Важно помнить, что Python
не является языком со статической типизацией, поэтому
разработчик не обязан явно определять типы данных при
создании переменных. Все языки со статической типизацией — такие как C или C++ — обычно требуют от программистов определять типы данных, хранящихся в переменных.
Хотя в Python определять тип данных не обязательно, все
же для построения сложных программ, активно взаимодействующих с пользователем, необходимо разбираться в них.
Вот пример языка со статической типизацией и того, как
в нем определяются переменные.
ПРОГРАММНЫЙ КОД:
int age = 12:

Здесь int — тип данных, используемый для определения
переменной, age — имя создаваемой переменной, а 12 —
значение, которое должно быть сохранено в переменной
age.
В Python же переменные определяются без явного указания
типа.
ПРОГРАММНЫЙ КОД:
age = 12

Глава 5. Типы данных Python

99

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

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

Идентификаторы
Идентификатор — это имя объекта, например переменной,
функции, класса, модуля и т. д.
ПРИМЕР:
x = 34

В этом примере x — идентификатор переменной, в которой
хранятся данные.

PYTHON ЗА 7 ДНЕЙ

100

Литералы
Это значения, которые присваиваются любым фрагментам
данных, создаваемым в программах.
ПРИМЕР:
x = 34

В этом примере 34 — литерал, который сохраняется
в созданном фрагменте данных.

Операторы
Операторы используются для реализации математических
операций при написании программной логики.
ПРИМЕР:
x = 34

В этом примере = — оператор присваивания. При создании
кода Python также часто применяются и другие арифметические операторы, например +, -, * и /.
Рассмотрим некоторые популярные типы данных, используемые программистами Python в приложениях.

Глава 5. Типы данных Python

101

Строки
Строки — тип данных, который обычно используется для
представления фрагментов текста. Программист, который
хочет применять строковые данные для хранения текста
в программе, может использовать одинарные или двойные
кавычки. Каждый раз, когда в программе создается строковый тип данных, на самом деле создается объект str,
содержащий последовательность символов.
Люди обычно общаются с помощью текста, поэтому строки
являются важнейшим типом данных, который должен
знать разработчик для создания полезных программ.
Важно понимать, что компьютеры всегда работают с двоичными данными, следовательно, для них строки представляют собой комбинацию нулей и единиц. Каждый символ
преобразуется с помощью кодировки ASCII или Юникод,
и программист должен хорошо понимать их.
В Python 3 появился усовершенствованный механизм
кодирования текста для таких иностранных языков, как
китайский, японский и корейский, вследствие чего расширяются возможности использования строк.
Как же строки представляются в программе?
ПРИМЕР:
x = 'This is an example'
print(x)
ВЫВОД:
This is an example

PYTHON ЗА 7 ДНЕЙ

102

Все символы, заключенные между одинарными или двойными кавычками, относятся к строковому типу данных.
В примере выше строковые данные сохраняются в переменной x. Область памяти и размер переменной со строковым типом данных обычно определяются количеством
битов, необходимых для хранения переменной. Количество символов в строковом типе данных прямо пропорционально количеству битов, например, в приведенном
выше примере строка 'This is an example' содержит
18 символов (включая пробелы).
Поскольку Python-разработчики могут объявлять строки
с помощью разных видов кавычек, для сохранения целостности при работе над реальными проектами рекомендуется использовать во всем коде один способ, который вам
кажется наиболее удобным.
ПРОГРАММНЫЙ КОД:
# Определение строк в двойных кавычках
a = "This is an example"
print(a)
# Определение строк в утроенных одинарных кавычках
b = '''This is an example'''
print(b)
# Определение строк в утроенных двойных кавычках
c = """This is an example
but with more than one line"""
print(c)
ВЫВОД:
This is an example
This is an example
This is an example
but with more than one line

Глава 5. Типы данных Python

103

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

Как обращаться к символам строки
Так как строки являются наиболее часто используемым
типом данных в Python, основная библиотека предоставляет
несколько встроенных функций для удобной работы с ними.
Чтобы обратиться к отдельным символам строки, необходимо знать их индексы. Нумерация индексов обычно
начинается с 0, а не с 1. Также можно использовать отрицательные индексы и срезы для обращения к отдельным
частям строки.
ПРИМЕР:
# Обращение к частям строки
first = 'Programming'
# Выводит всю строку
print('Example used = ', first)
# Выводит первый символ
print('first character = ', first[0])
# Выводит последний символ с помощью отрицательного
# индекса
print('last character = ', first[-1])
# Выводит последний символ с помощью положительного
# индекса
print('last character = ', first[10])
# Выводит срез от нулевого до третьего индекса
print('Sliced character = ', first[0:3])

PYTHON ЗА 7 ДНЕЙ

104

ВЫВОД:
Example used = Programming
first character = P
last character = g
last character = g
Sliced character = Pro

Так как строковый тип данных является неизменяемым,
заменить символы в строковом литерале невозможно.
Если вы попытаетесь заменить отдельные символы, будет
выдана ошибка TypeError.
ПРОГРАММНЫЙ КОД:
first = 'programming'
first[1] = 'c'
print(first)
ВЫВОД:
TypeError: 'str' object does not support item
 assignment

Глава 5. Типы данных Python

105

Форматирование строк
Python предоставляет простые средства форматирования строк с использованием символа % (этот же символ
применяется при вычислении остатка от деления). В этом
контексте % также называется оператором форматирования
строк.
ПРОГРАММНЫЙ КОД:
print("Italy won FIFA cup %d times" % 4)
ВЫВОД:
Italy won FIFA cup 4 times

Для форматирования строк с помощью целых чисел
используется обозначение %d, а для добавления строковых
символов — %s.

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

PYTHON ЗА 7 ДНЕЙ

106

Конкатенация
Конкатенацией называется соединение двух фрагментов
строк. Для соединения двух строк можно воспользоваться
арифметическим оператором + . Если вы хотите, чтобы
команда лучше читалась, разделите строки пробелами.
ПРОГРАММНЫЙ КОД:
example = 'This is ' + 'a great example'
print(example)
ВЫВОД:
This is a great example

Помните, что при конкатенации объединяемые строки не
разделяются пробелами. Пробелы необходимо добавить
самостоятельно, как показано в следующем примере.
ПРОГРАММНЫЙ КОД:
example = 'This is' + ' ' + 'a great example'
print(example)
ВЫВОД:
This is a great example

Умножение строк
Операция умножения строк многократно повторяет строковое значение. Для ее выполнения используется оператор *.
ПРОГРАММНЫЙ КОД:
example = 'Great ' * 4
print(example)

Глава 5. Типы данных Python

107

ВЫВОД:
Great Great Great Great

Присоединение
Эта операция присоединяет любую строку в конец другой
строки; для ее выполнения используется арифметический
оператор +=. Помните, что присоединяемая строка добавляется именно в конец другой строки.
ПРОГРАММНЫЙ КОД:
example = "France is a beautiful country "
example += "you need to visit at least once"
print(example)
ВЫВОД:
France is a beautiful country you need to visit at
least once



Определение длины строки
Кроме строковых операций, вы также можете пользоваться
встроенными функциями и методами из основной библио­
теки. Например, функция len() позволяет узнать количество символов в строке.

ПРИМЕЧАНИЕ
Пробелы также учитываются при подсчете символов в строке.

PYTHON ЗА 7 ДНЕЙ

108

ПРОГРАММНЫЙ КОД:
example = 'Today it will rain'
print(len(example))
ВЫВОД:
18

Поиск в строке
При работе со строками нередко встречается задача поиска
фрагмента текста. Для решения этой задачи можно воспользоваться встроенной функцией find(). Она возвращает
индекс позиции первого вхождения искомой подстроки.

ПРИМЕЧАНИЕ
При использовании функции find() интерпретатор
Python возвращает только положительные индексы.

ПРОГРАММНЫЙ КОД:
example = "This is great"
sample = example.find('gr')
print(sample)
ВЫВОД:
8

Если подстрока не найдена, интерпретатор возвращает
значение -1.

Глава 5. Типы данных Python

109

ПРОГРАММНЫЙ КОД:
example = "This is great"
sample = example.find('f')
print(sample)
ВЫВОД:
-1

Преобразование регистра
Методы lower() и upper() используются для приведения
символов строки к нижнему или верхнему регистру.
ПРОГРАММНЫЙ КОД:
example = "China is the most populous country"
sample = example.lower()
print(sample)
ВЫВОД:
china is the most populous country
ПРОГРАММНЫЙ КОД:
example = "China is the most populous country"
sample = example.upper()
print(sample)
ВЫВОД:
CHINA IS THE MOST POPULOUS COUNTRY

PYTHON ЗА 7 ДНЕЙ

110

Метод title()
Метод title() используется для преобразования строки,
в результате которого каждое слово начинается с буквы
в верхнем регистре.
ПРОГРАММНЫЙ КОД:
example = "China is the most populous country"
sample = example.title()
print(sample)
ВЫВОД:
China Is The Most Populous Country

Глава 5. Типы данных Python

111

Целые числа
Числовые значения в коде Python используются для выполнения арифметических операций или получения подробной
информации о статистической величине. Когда интерпретатор Python встречает значение целочисленного типа, он
немедленно создает объект int с указанным значением.
Ни одно значение объекта int не может заменяться другим
значением, поскольку этот тип является неизменяемым.
Разработчики используют тип данных int для реализации
многих нетривиальных возможностей в своих программах.
Например, плотность пикселей в графических или видеофайлах обычно представляется целыми числами.
ПРИМЕЧАНИЕ
Разработчику также следует знать об унарных
операторах (+, -), которые используются для представления положительных и отрицательных чисел
соответственно. Для положительных целых чисел
указывать унарный оператор не обязательно, но
для отрицательных целых чисел это необходимо.

ПРОГРАММНЫЙ КОД:
x = 25
y = -45
print(x)
print(y)
ВЫВОД:
25
-45

PYTHON ЗА 7 ДНЕЙ

112

Числа с плавающей точкой
Не все числовые значения являются целыми. Иногда
приходится иметь дело с данными, имеющими дробную
часть. Чтобы разработчики могли оперировать такими
данными, в Python поддерживаются числа с плавающей
точкой. Они позволяют работать с дробными значениями
с точностью до семи знаков.
ПРОГРАММНЫЙ КОД:
x = 4.2324324
y = 67.32323
print(x)
print(y)
ВЫВОД:
4.2324324
67.32323

Числа с плавающей точкой также могут использоваться
для представления данных в шестнадцатеричной системе.
ПРОГРАММНЫЙ КОД:
a = float.hex(23.232)
print(a)
ВЫВОД:
0x1.73b645a1cac08p+4

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

Глава 5. Типы данных Python

113

Логический тип данных
К логическому типу данных относятся специальные типы
данных, которые обычно используются для представления
результатов True или False, например при сравнении двух
значений.
ПРОГРАММНЫЙ КОД:
a = 32
b = 64
print (a > b)
ВЫВОД:
False

В этом примере результат равен False, потому что значе­
­ние a не больше значения b . Логические типы данных
удобны при выполнении логических операций.

Глава 6
Сложные
структуры
данных в Python

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

PYTHON ЗА 7 ДНЕЙ

116

Списки
Списки — структура данных Python, способная хранить
элементы разного типа в определенном порядке. У списков,
как и у переменных, есть имя, и их тоже можно передавать
в функции, однако у списков есть и уникальные свойства
и возможности. Например, их можно изменять, извлекать
из них отдельные элементы или обрабатывать при помощи
методов из стандартной библиотеки Python.
Списки обычно представляются в Python в следующем
формате:
[32, 33, 34]

В этом фрагменте кода 32, 33 и 34 — элементы списка.
Важно понимать, что здесь элементы списка относятся
к целочисленному типу данных, который не определяется
явно, потому что интерпретатор Python может делать это
автоматически.
Наблюдательный читатель заметит, что списки заключаются в квадратные скобки, а элементы разделяются запятыми. Если элемент списка относится к строковому типу
данных, он записывается в кавычках.
ПРИМЕР:
['Nevada', 'Ohio', 'Colorado']

В данном контексте Nevada, Ohio и Colorado — элементы
списка.

Глава 6. Сложные структуры данных в Python

117

Списки могут присваиваться переменным, как в следующем примере:
sample = ['Nevada', 'Ohio', 'Colorado']

Списки выводятся на экран точно так же, как и все
остальные типы данных.
ПРОГРАММНЫЙ КОД:
print(sample)
ВЫВОД:
['Nevada', 'Ohio', 'Colorado']

Пустой список
Список Python, не содержащий ни одного элемента, называется пустым. Обычно пустые списки представляются
в виде [].
ПРОГРАММНЫЙ КОД:
example = []

PYTHON ЗА 7 ДНЕЙ

118

Индексы в списках
Python поддерживает простые и удобные средства для
обработки и замены элементов списка. Индексы обычно
начинаются с 0; они используются при выполнении многих
операций (например, сегментирования и поиска).
Возьмем список, который был показан в одном из предыдущих примеров:
['Ohio', 'Nevada', 'Colorado']

Все элементы этого списка можно вывести с указанием
их индексов.
ПРОГРАММНЫЙ КОД:
example = ['Ohio', 'Nevada', 'Colorado']
print(example[0])
print(example[1])
print(example[2])
ВЫВОД:
Ohio
Nevada
Colorado

Получая индекс 0, интерпретатор Python выводит первый
элемент списка. С увеличением индекса увеличивается
позиция элемента в списке.

Глава 6. Сложные структуры данных в Python

119

Также при выводе элемент списка можно объединить со
строковым литералом.
ПРОГРАММНЫЙ КОД:
example = ['Ohio', 'Nevada', 'Colorado']
print(example[2] + ' is a great city')
ВЫВОД:
Colorado is a great city

Если при обращении к списку указывается индекс, превышающий количество элементов, интерпретатор Python
выдает сообщение об ошибке.
ПРОГРАММНЫЙ КОД:
example = ['Ohio', 'Nevada', 'Colorado']
print(example[3])
ВЫВОД:
Index error: list index out of range

ПРИМЕЧАНИЕ
Следует помнить, что числа с плавающей точкой
не могут использоваться в качестве индексов.

PYTHON ЗА 7 ДНЕЙ

120

ПРОГРАММНЫЙ КОД:
example = ['Ohio', 'Nevada', 'Colorado']
print(example[3.2])
ВЫВОД:
TypeError: list indices must be integers or slices,
not float



Элементами списков также могут быть другие списки.
Список, хранящийся внутри другого списка, называется
вложенным.
ПРОГРАММНЫЙ КОД:
x = [[1, 223], [2, 45, 63, 22]]
print(x)
ВЫВОД:
[[1, 223], [2, 45, 63, 22]]

Для обращения к элементу вложенного списка используется запись вида list[][].
ПРОГРАММНЫЙ КОД:
x = [[1, 223], [245, 63, 22]]
print(x[1][2])
ВЫВОД:
22

Глава 6. Сложные структуры данных в Python

121

Третий элемент второго списка равен 22, что и отражено
в выводе.
К элементам списка также можно обращаться с указанием
отрицательного индекса. Обычно значение -1 соответствует индексу последнего элемента, -2 — предпоследнего
и т. д.
ПРОГРАММНЫЙ КОД:
example = ['Ohio', 'Nevada', 'Colorado']
print(example[-1])
ВЫВОД:
Colorado

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

Срезы
Срезы избавляют программиста от необходимости работать с элементами списка, которые его не интересуют.
Выделяя сегмент, можно сосредоточиться на той части
списка, которая важна для логики программы.
СИНТАКСИС:
имя_списка[начальный индекс: конечный индекс]

PYTHON ЗА 7 ДНЕЙ

122

Индекс начального элемента обычно отделяется двоеточием от индекса конечного элемента списка.
ПРОГРАММНЫЙ КОД:
sample = [12, 32, 21, 24, 65]
print(sample[0:2])
ВЫВОД:
[12, 32]

При определении среза не обязательно указывать начало
или конец списка. Если это не указано в явном виде, интерпретатор автоматически предполагает, что имеется в виду
первый или последний элемент списка.
ПРИМЕР:
sample = [12, 32, 21, 24, 65]
print(sample[:3])
ВЫВОД:
[12, 32, 21]

Так как в этом примере индекс перед двоеточием не указан,
интерпретатор делает вывод, что срез начинается с первого
элемента.
ПРИМЕР:
sample = [12, 32, 21, 24, 65]
print(sample[2:])

Глава 6. Сложные структуры данных в Python

ВЫВОД:
[21, 24, 65]

В этом примере интерпретатор предполагает, что индекс
после двоеточия должен соответствовать концу списка.
Если не указаны оба значения, на выходе будет получен
полный список, как в следующем примере.
ПРОГРАММНЫЙ КОД:
sample = [12, 32, 21, 24, 65]
sample[:]
ВЫВОД:
[12, 32, 21, 24, 65]

Получение длины списка
Чтобы быстро определить длину списка, используйте
встроенную функцию len().
ПРОГРАММНЫЙ КОД:
sample = [12, 32, 21, 24, 65]
print(len(sample))
ВЫВОД:
5

123

PYTHON ЗА 7 ДНЕЙ

124

Изменение значений элементов списка
Как показано ниже, значения в списке можно легко изменить при помощи оператора присваивания.
ПРОГРАММНЫЙ КОД:
sample = [12, 32, 21, 24, 65]
sample[2] = 34
print(sample)
ВЫВОД:
[12, 32, 34, 24, 65]

Также значение элемента в списке можно заменить значением другого, уже существующего элемента, как в следующем примере.
ПРОГРАММНЫЙ КОД:
sample = [12, 32, 21, 24, 65]
sample[2] = sample[1]
print(sample)
ВЫВОД:
[12, 32, 32, 24, 65]

Глава 6. Сложные структуры данных в Python

125

Конкатенация списков
Два списка легко объединяются арифметическим оператором +.
ПРОГРАММНЫЙ КОД:
sample = [12, 32, 21, 24, 65]
example = [11, 22, 33]
print(sample + example)
ВЫВОД:
[12, 32, 21, 24, 65, 11, 22, 33]

Дублирование списков
Оператор * позволяет продублировать элементы списков.
ПРОГРАММНЫЙ КОД:
print([2, 4, 6] * 3)
ВЫВОД:
[2, 4, 6, 2, 4, 6, 2, 4, 6]

PYTHON ЗА 7 ДНЕЙ

126

Удаление элементов
Из списка также можно удалить отдельные элементы
командой del.
ПРОГРАММНЫЙ КОД:
sample = [2, 3, 4, 6, 8]
del sample[2]
print(sample)
ВЫВОД:
[2, 3, 6, 8]

Операторы in и not in
Python предоставляет простой способ проверки присутствия значений в списке. Для этого используются логические операторы in и not in. Их результатом является
логическое значение True или False.
ПРОГРАММНЫЙ КОД:
print('Football' in ['Cricket', 'Football',
'Hockey'])



ВЫВОД:
True

Глава 6. Сложные структуры данных в Python

127

Метод index()
Метод index() позволяет легко найти индекс элемента
в списке.
ПРОГРАММНЫЙ КОД:
x = [32, 23, 12]
print(x.index(23))
ВЫВОД:
1

Если указанный элемент отсутствует в списке, будет
выдана ошибка ValueError.
ПРОГРАММНЫЙ КОД:
x = [32, 23, 12]
print(x.index(49))
ВЫВОД:
ValueError: 49 is not in list

PYTHON ЗА 7 ДНЕЙ

128

Метод insert()
С помощью метода insert() можно добавить новый
элемент на любую позицию списка.
СИНТАКСИС:
имя_списка.insert(индекс, элемент)
ПРОГРАММНЫЙ КОД:
x = [32, 23, 12]
x.insert(2, 11)
print(x)
ВЫВОД:
[32, 23, 11, 12]

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

Глава 6. Сложные структуры данных в Python

129

Метод sort()
При помощи метода sort() Python-разработчики могут
легко выстроить все элементы списка по возрастанию или
по убыванию.
ПРОГРАММНЫЙ КОД:
x = [23, 12, 11, 45]
x.sort()
print(x)
ВЫВОД:
[11, 12, 23, 45]

Если в списке содержатся строки, то список будет отсор­
тирован в алфавитном порядке.
ПРОГРАММНЫЙ КОД:
x = ['USA', 'China', 'Russia', 'UK']
x.sort()
print(x)
ВЫВОД:
['China', 'Russia', 'UK', 'USA']

Для сортировки элементов списка по убыванию в метод
добавляется аргумент reverse = True.

PYTHON ЗА 7 ДНЕЙ

130

Кортежи
Списки — популярная структура данных, которая часто
используется программистами Python. Тем не менее их
реализации присущи некоторые проблемы. Так как все
списки, создаваемые в Python, являются изменяемыми
объектами, повышается риск случайной замены элементов,
удаления или иных операций с ними.
Разработчику иногда бывает удобнее создать неизменяемую структуру данных. В такой ситуации стоит обратиться
к кортежам. Значения элементов кортежа невозможно изменить. При попытке изменить содержимое кортежа выдается
ошибка TypeError.
ПРОГРАММНЫЙ КОД:
# Создание кортежа в Python
example = ('Earth', 'Venus', 'Mars')
print(example)
ВЫВОД:
('Earth', 'Venus', 'Mars')

В этом примере мы просто создаем кортеж и используем
функцию print для вывода его содержимого на экран.

ПРИМЕЧАНИЕ
Кортежи, в отличие от списков, записываются не
в квадратных, а в круглых скобках.

Глава 6. Сложные структуры данных в Python

131

Проведем эксперимент, чтобы вы поняли, как работают
кортежи. Попробуем изменить элемент в приведенном
примере, вывести его содержимое и посмотреть, что при
этом произойдет.
ПРОГРАММНЫЙ КОД:
# Создание кортежа в Python
example = ('Earth', 'Venus', 'Mars')
print(example)
example[2] = 'Jupiter'
# Вывод содержимого кортежа после замены элемента
print(example)
ВЫВОД:
('Earth', 'Venus', 'Mars')
TypeError: 'tuple' object does not support item
 assignment

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

PYTHON ЗА 7 ДНЕЙ

132

Конкатенация кортежей
С кортежами также можно выполнять различные операции,
сходные с операциями со списками, которые рассматривались ранее. Например, как и в случае со списками, с кортежами можно выполнять операции сложения или умножения.
ПРОГРАММНЫЙ КОД:
sample1 = (45, 34, 23)
sample2 = (32, 12, 11)
# Сложение двух кортежей
print(sample1 + sample2)
ВЫВОД:
(45, 34, 23, 32, 12, 11)

В этом примере два кортежа объединяются оператором
сложения. Аналогичным образом можно воспользоваться
оператором умножения для быстрого дублирования
элементов в кортеже.
Также в кортеже могут храниться другие кортежи. Обычно
внутренние кортежи называются вложенными.
ПРОГРАММНЫЙ КОД:
a = (23, 32, 12)
b = ('Tokyo', 'Paris', 'Washington')
c = (a, b)
print(c)
ВЫВОД:
((23, 32, 12), ('Tokyo', 'Paris', 'Washington'))

В этом примере два кортежа вложены в один общий кортеж.

Глава 6. Сложные структуры данных в Python

133

Дублирование
Программисты также могут дублировать содержимое
кортежа при помощи оператора *.
ПРОГРАММНЫЙ КОД:
a = (2, 3, 4) * 3
print(a)
ВЫВОД:
(2, 3, 4, 2, 3, 4, 2, 3, 4)

Как было сказано ранее, содержимое кортежей невозможно
изменить, так как кортежи проектировались как неизменяемые. Посмотрим, что произойдет, если попытаться
заменить одно значение другим.
ПРОГРАММНЫЙ КОД:
x = (32,64,28)
x[2] = 12
print(x)
ВЫВОД:
TypeError: 'tuple' object does not support item
assignment



PYTHON ЗА 7 ДНЕЙ

134

Сегментирование кортежей
Программист может легко извлечь часть кортежа операцией сегментирования, которая выделяет часть кортежа
по граничным индексам.
ПРОГРАММНЫЙ КОД:
x = (12, 13, 14, 15, 16)
print(x[1:3])
ВЫВОД:
(13, 14)

Как удалить кортеж
Невозможно удалить конкретный элемент, присутствующий в кортеже, но сам кортеж можно полностью удалить
следующей командой.
ПРОГРАММНЫЙ КОД:
x = (12, 13, 14, 15, 16)
del x
print(x)
ВЫВОД:
NameError: name 'x' is not defined

Глава 6. Сложные структуры данных в Python

135

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

Как создать словарь
Как говорилось ранее, словари определяются как наборы
пар «ключ — значение», разделенные запятыми. Все последовательно перечисляемые элементы должны разделяться
запятыми.
СИНТАКСИС:
словарь = {ключ: значение, ключ: значение, ...}

Разработчик может включить в словарь любое количество
таких пар.
ПРИМЕР:
capitals = {'USA': 'Washington', 'Russia':
'Moscow', 'China': 'Beijing'}
print(capitals)


PYTHON ЗА 7 ДНЕЙ

136

ВЫВОД:
{'USA': 'Washington', 'Russia': 'Moscow',
'China': 'Beijing'}



Также поддерживается возможность создания вложенных
словарей, то есть словарей, которые являются элементами
других словарей:
capitals = {'USA': 'Washington', 'Russia':
'Moscow', 'China': 'Beijing',
'Australia': {'Australia': 'Canberra',
 'New_Zealand': 'Wellington'}}

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

Упражнения
„ Напишите программу для игры в «перепутанные слова»1.
Программа должна создавать несколько списков, взаимодействующих друг с другом.
„ Напишите программу, которая переставляет в обратном
порядке все элементы списка и подсчитывает длину
списка.
„ Напишите программу для упорядочения содержащихся
в словаре пар «ключ — значение» по возрастанию или
по убыванию.

1

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

Глава 6. Сложные структуры данных в Python

137

„ Напишите программу, которая создает словарь из N пар
популярных синонимов (можно начать с N = 10.)
„ Напишите программу, которая переставляет элементы
словаря в обратном порядке и заменяет в их элементах
зна­чения цветов в формате RGB («красный/зеленый/
синий») цветами в формате «синий/зеленый/оран­жевый».

138

PYTHON ЗА 7 ДНЕЙ

Глава 7
Условные
конструкции
и циклы

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

PYTHON ЗА 7 ДНЕЙ

140

Операторы сравнения
Чтобы понимать условные конструкции и циклы и уметь
пользоваться ими на практике, необходимо знать разные
операторы сравнения, которые поддерживаются языком
Python.
Операторы сравнения, как следует из названия, сравнивают два операнда и выдают результат в форме логического
значения (True или False).

ПРИМЕЧАНИЕ
True и False — специальные логические значения, поддерживаемые языком Python для принятия решений в программах. Эти логические значения базируются на принципах работы логических
элементов, содержащихся в микропроцессорах.

Оператор «меньше» ()
Оператор «больше» проверяет, больше ли значение левого
операнда, чем значение правого операнда.
ПРОГРАММНЫЙ КОД:
print(48 > 64)
ВЫВОД:
False
ПРОГРАММНЫЙ КОД:
print(33 > 21)
ВЫВОД:
True

143

PYTHON ЗА 7 ДНЕЙ

144

В первом примере выводится логическое значение False,
потому что значение левого операнда (48) не больше
правого (64).
Во втором примере же выводится логическое значение
True, потому что значение правого операнда (33) больше
значения левого операнда (21).
Аналогичным образом оператор «больше» может использоваться для сравнения чисел с плавающей точкой и других
типов данных (например, кортежей).

Оператор «равно» (==)
Оператор «равно» проверяет, равны ли значения двух
операндов — левого и правого. Если значения равны,
возвращается логическое значение True , а если нет —
значение False.
ПРОГРАММНЫЙ КОД:
print(64 == 64)
ВЫВОД:
True
ПРОГРАММНЫЙ КОД:
print(43 == 42)
ВЫВОД:
False

Глава 7. Условные конструкции и циклы

145

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

Последовательная структура
При последовательной структуре программного кода все
действия вашей программы обычно выполняются линейно.
Многие программы используют последовательную структуру, чтобы избежать усложнения кода. Тем не менее
создание последовательного кода требует значительного
мастерства от программиста, потому что линейный подход
часто оказывается непросто реализовать.
ПРИМЕР:
a = "34"
print(a + " is my favorite number")
ВЫВОД:
34 is my favorite number

В этом примере интерпретатор Python выполняет код
последовательно, строку за строкой и в результате выводит
на экран текст.

146

PYTHON ЗА 7 ДНЕЙ

Условная конструкция
Условие — известная программная структура, при которой,
в зависимости от результата логической проверки, определенная часть программы выполняется, а другая часть
пропускается.
В условной конструкции выполняются только части
команд, что помогает интерпретатору Python экономить
время, так как ему не нужно разбирать весь написанный
код.
Чаще всего программисты Python используют условные
структуры if и if-else.

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

Глава 7. Условные конструкции и циклы

147

Условные операторы if/else
Условные операторы зависят от принятия решений при
выполнении конкретных операций. Если условие не
выполняется, соответствующий блок условной логики
пропускается.
Для выбора между двумя блоками в Python существует
базовая команда if/else.
СИНТАКСИС:
if условие:
выполняемая команда
else:
выполняемая команда
ПРОГРАММНЫЙ КОД:
number = 43
if number % 3 == 0:
print ("This number is divided by 3")
else:
print ("This number is not divisible by 3")
ВЫВОД:
This number is not divisible by 3

PYTHON ЗА 7 ДНЕЙ

148

Объяснение
„ Сначала необходимо определить переменную, которая
будет хранить данные, проверяемые условием if/else.
„ Код, который выполняется после команды if (else),
должен иметь отступ (четыре знака «пробел»).
„ В более сложных программах используются средства
ввода (input) для получения данных непосредственно
от пользователя.
„ После того как переменная будет сохранена, интерпретатор обрабатывает условие блока if.
„ Интерпретатор Python выполняет операцию вычисления остатка и определяет, кратно ли 3 проверяемое
число.
„ Если число кратно 3, выполняется блок, расположенный
под ключевым словом if.
„ Так как в данном случае условие ложно, интерпретатор пропускает блок if и выполняет код блока else.
В результате выводится то значение, которое вы видите.
В следующем примере выполняется код блока if.
ПРОГРАММНЫЙ КОД:
number = 40
if number % 4 == 0:
print ("This number is divided by 4")
else:
print ("This number is not divisible by 4")

Глава 7. Условные конструкции и циклы

149

ВЫВОД:
This number is divided by 4

Так как условие истинно, выполняется команда print
блока if, а блок else пропускается интерпретатором.

Операторы if, elif, else
Чтобы сделать серию проверок более эффективной, можно
добавить несколько проверок выполнения условий.
ПРОГРАММНЫЙ КОД:
sample = 45
if sample % 3 == 0:
print ("This number is divisible by 3")
elif sample % 4 == 0:
print("This number is divisible by 4")
else:
print ("This number is not divisible by 3 and
 4")
ВЫВОД:
This number is divisible by 3

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

PYTHON ЗА 7 ДНЕЙ

150

Цикл for
Циклы, как и условные конструкции, относятся к числу
основных строительных блоков программ Python. Вместо
того чтобы многократно выполнять одну и ту же операцию,
например проверять условие, можно воспользоваться
циклом for или while.
В циклах for могут использоваться любые разновидности
структур данных: списки, кортежи, строки, словари.
СИНТАКСИС:
for val in list:
{Здесь размещается тело цикла}

Цикл for обеспечивает перебор всех элементов.
ПРИМЕР:
x = [32, 12, 11]
sample = 0
for val in x:
sample = sample + val
print ("The sum of numbers is", sample)
ВЫВОД:
The sum of the numbers is 55

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

Глава 7. Условные конструкции и циклы

151

Цикл while
Цикл for хорошо подходит для автоматизации, но он
несколько усложняет реализацию логики в коде, потому
что на уровне цикла нельзя задать проверяемое условие
завершения цикла. В таких ситуациях используется цикл
while.
В заголовке цикла while задается условие, которое будет
проверяться при каждой итерации цикла.
СИНТАКСИС
while условие
{тело цикла}
ПРИМЕР:
y = 0
z = 1
x = int(input("Enter number: "))
while z