Сегодня существует много разных языков программирования. Некоторые из них популярны, а некоторые — не очень. Обычно популярность языка определяют по количеству программистов, которые используют его в своей работе на постоянной основе, или по запросам работодателей, которые ищут сотрудников-программистов. Долгие годы традиционно популярными являются языки программирования Java, C++, C#, JavaScript и PHP. В последнее время в этой великолепной компании все чаще упоминается язык программирования Python. Даже больше — по некоторым опросам язык Python уже занимает лидирующие позиции. Именно этому языку посвящена книга.

Обложка книги
Обложка книги

Figures - uploaded by Alex Vasilev

Author content

All figure content in this area was uploaded by Alex Vasilev

Content may be subject to copyright.

ResearchGate Logo

Discover the world's research

  • 20+ million members
  • 135+ million publications
  • 700k+ research projects

Join for free

УДК 004.438

ББК 32.973.26-018.1

В19

Васильев, Алексей.

Программирование на Python в примерах и задачах / Алексей Ва-

сильев. — Москва : Эксмо, 2021. — 616 с. — (Российский компьютер-

ный бестселлер).

ISBN 978-5-04-103199-2

Сегодня существует много разных языков программирования. Некоторые из них

популярны, а некоторые — не очень. Обычно популярность языка определяют по коли-

честву программистов, которые используют его в своей работе на постоянной основе,

или по запросам работодателей, которые ищут сотрудников-программистов. Долгие

годы традиционно популярными являются языки программирования Java, C++, C#,

JavaScript и PHP. В последнее время в этой великолепной компании все чаще упоми-

нается язык программирования Python. Даже больше — по некоторым опросам язык

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

УДК 004.438

ББК 32.973.26-018.1

В19

ISBN 978-5-04-103199-2

© Васильев А.Н., текст, 2021

© Оформление. ООО «Издательство «Эксмо», 2021

Все права защищены. Книга или любая ее часть не может быть скопирована, воспроизведена в

электронной или механической форме, в виде фотокопии, записи в память ЭВМ, репродукции

или каким-либо иным способом, а также использована в любой информационной системе без

получения разрешения от издателя. Копирование, воспроизведение и иное использование книги

или ее части без согласия издателя является незаконным и влечет уголовную, административную

и гражданскую ответственность.

Научно-популярное издание

ÐÎÑÑÈÉÑÊÈÉ ÊÎÌÏÜÞÒÅÐÍÛÉ ÁÅÑÒÑÅËËÅÐ

Васильев Алексей

ПРОГРАММИРОВАНИЕ НА PYTHON В ПРИМЕРАХ И ЗАДАЧАХ

Главный редактор Р. Фасхутдинов

Руководитель направления В. Обручев

Ответственный редактор Е. Горанская

Литературный редактор С. Ульянов

Младший редактор Ю. Клюшина

Художественный редактор В. Брагина

Компьютерная верстка Э. Брегис

Корректоры Р. Болдинова, А. Баскакова

Страна происхождения: Российская Федерация

Шыарылан елі: Ресей Федерациясы

Дата изготовления / Подписано в печать 05.11.2020. Формат 70x1001 /16.

Печать офсетная. Усл. печ. л. 49,91.

Тираж экз. Заказ

12+

ООО «Издательство «Эксмо»

123308, Россия, город Москва, улица Зорге, дом 1, строение 1, этаж 20, каб. 2013.

Тел.: 8 (495) 411-68-86.

Home page: www.eksmo.ru E-mail: info@eksmo.ru

ндіруші: «ЭКСМО» АБ Баспасы,

123308, Ресей, ала Мскеу, Зорге кшесі, 1 й, 1 имарат, 20 абат, офис 2013 ж.

Тел.: 8 (495) 411-68-86.

Home page: www.eksmo.ru E-mail: info@eksmo.ru.

Тауар белгісі: «Эксмо»

Интернет-магазин : www.book24.ru

Интернет-магазин : www.book24.kz

Интернет-д#кен : www.book24.kz

Импортёр в Республику Казахстан ТОО «РДЦ-Алматы».

азастан Республикасындаы импорттаушы «РДЦ-Алматы» ЖШС.

Дистрибьютор и представитель по приему претензий на продукцию,

в Республике Казахстан: ТОО «РДЦ-Алматы»

азастан Республикасында дистрибьютор жне нім бойынша арыз-талаптарды

абылдаушыны кілі «РДЦ-Алматы» ЖШС,

Алматы ., Домбровский кш., 3«а», литер Б, офис 1.

Тел.: 8 (727) 251-59-90/91/92; E-mail: RDC-Almaty@eksmo.kz

німні жарамдылы мерзімі шектелмеген.

Сертификация туралы апарат сайтта: www.eksmo.ru/certifi cation

Сведения о подтверждении соответствия издания согласно законодательству РФ

о техническом регулировании можно получить на сайте Издательства «Эксмо»

www.eksmo.ru/certifi cation

ндірген мемлекет: Ресей. Сертификация арастырылмаан

ПРИСОЕДИНЯЙТЕСЬ К НАМ!

bomborabooks bombora

bombora.ru

МЫ В СОЦСЕТЯХ:

БОМБОРА – лидер на рынке полезных

и вдохновляющих книг. Мы любим книги

и создаем их, чтобы вы могли творить,

открывать мир, пробовать новое, расти.

Быть счастливыми. Быть на волне.

3

ОГЛАВЛЕНИЕ

Вступление. Книга о языке программирования Python . . . . . . . . . . . . 6

Язык Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

Особенности книги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

Программное обеспечение . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Об авторе . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

Обратная связь . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

Благодарности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

Глава 1. Знакомство с Python . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

Первая программа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

Использование различных сред разработки . . . . . . . . . . . . . . . . 22

Среда разработки PyCharm . . . . . . . . . . . . . . . . . . . . . . . . 23

Среда разработки Wing . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

Среда разработки PyScripter . . . . . . . . . . . . . . . . . . . . . . . . 33

Знакомство с переменными . . . . . . . . . . . . . . . . . . . . . . . . . . 35

Ввод значения в программу . . . . . . . . . . . . . . . . . . . . . . . . . . 39

Функция eval() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

Знакомство со списками . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

Знакомство с условным оператором . . . . . . . . . . . . . . . . . . . . . 56

Знакомство с оператором цикла . . . . . . . . . . . . . . . . . . . . . . . 59

Знакомство с функциями . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

Задания для самостоятельной работы . . . . . . . . . . . . . . . . . . . 69

Глава 2. Основные операции . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

Оператор цикла while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

Оператор цикла for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

Условный оператор if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

Тернарный оператор . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

Обработка исключительных ситуаций . . . . . . . . . . . . . . . . . . 108

Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

Задания для самостоятельной работы . . . . . . . . . . . . . . . . . . 122

Глава 3. Списки и кортежи . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

Знакомство с кортежами . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

Основные операции со списками и кортежами . . . . . . . . . . . . . 130

Создание выборки на основе списков и кортежей . . . . . . . . . . . 139

Вложенные списки и кортежи . . . . . . . . . . . . . . . . . . . . . . . 147

Копирование списков и кортежей . . . . . . . . . . . . . . . . . . . . . 153

Функции и методы для работы со списками . . . . . . . . . . . . . . . 158

Оглавление

4

Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

Задания для самостоятельной работы . . . . . . . . . . . . . . . . . . 169

Глава 4. Множества и словари . . . . . . . . . . . . . . . . . . . . . . . . . . 171

Знакомство с множествами . . . . . . . . . . . . . . . . . . . . . . . . . 171

Операции с множествами . . . . . . . . . . . . . . . . . . . . . . . . . . 176

Примеры использования множеств . . . . . . . . . . . . . . . . . . . . 186

Знакомство со словарями . . . . . . . . . . . . . . . . . . . . . . . . . . 192

Операции со словарями . . . . . . . . . . . . . . . . . . . . . . . . . . . 200

Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208

Задания для самостоятельной работы . . . . . . . . . . . . . . . . . . 209

Глава 5. Работа с текстом . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

Текстовые литералы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

Основные операции с текстом . . . . . . . . . . . . . . . . . . . . . . . 226

Методы для работы с текстом . . . . . . . . . . . . . . . . . . . . . . . . 230

Примеры работы с текстом . . . . . . . . . . . . . . . . . . . . . . . . . 242

Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247

Задания для самостоятельной работы . . . . . . . . . . . . . . . . . . 248

Глава 6. Функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250

Объявление и вызов функции . . . . . . . . . . . . . . . . . . . . . . . 250

Именованные аргументы функции . . . . . . . . . . . . . . . . . . . . 261

Механизм передачи аргументов . . . . . . . . . . . . . . . . . . . . . . 262

Значения аргументов по умолчанию . . . . . . . . . . . . . . . . . . . 266

Функции с произвольным количеством аргументов . . . . . . . . . 270

Локальные и глобальные переменные . . . . . . . . . . . . . . . . . . 274

Вложенные функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277

Лямбда-функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279

Функция как аргумент и результат . . . . . . . . . . . . . . . . . . . . 282

Рекурсия . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286

Декораторы функций . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289

Функции-генераторы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292

Аннотации и документирование в функциях . . . . . . . . . . . . . . 297

Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301

Задания для самостоятельной работы . . . . . . . . . . . . . . . . . . 303

Глава 7. Файлы и данные . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305

Числовые данные . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305

Логические значения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319

Дата и время . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322

Работа с файлами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331

Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344

Задания для самостоятельной работы . . . . . . . . . . . . . . . . . . 345

Глава 8. Классы и объекты . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347

Концепция классов и объектов . . . . . . . . . . . . . . . . . . . . . . . 347

Описание классов и создание объектов . . . . . . . . . . . . . . . . . . 350

Оглавление

Конструкторы и деструкторы . . . . . . . . . . . . . . . . . . . . . . . . 358

Объект реализации класса . . . . . . . . . . . . . . . . . . . . . . . . . . 361

Операции с атрибутами классов и объектов . . . . . . . . . . . . . . . 372

Копирование объектов . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378

Документирование и декораторы . . . . . . . . . . . . . . . . . . . . . 382

Использование классов и объектов . . . . . . . . . . . . . . . . . . . . 388

Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400

Задания для самостоятельной работы . . . . . . . . . . . . . . . . . . 402

Глава 9. Наследование и специальные методы . . . . . . . . . . . . . . . . 405

Знакомство с наследованием . . . . . . . . . . . . . . . . . . . . . . . . 405

Множественное наследование . . . . . . . . . . . . . . . . . . . . . . . 413

Переопределение методов при наследовании . . . . . . . . . . . . . . 417

Приведение типов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432

Перегрузка операторов . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436

Доступ к атрибутам . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448

Индексирование объектов . . . . . . . . . . . . . . . . . . . . . . . . . . 459

Вызов объекта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463

Итераторы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466

Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474

Задания для самостоятельной работы . . . . . . . . . . . . . . . . . . 475

Глава 10. Обработка исключений и потоки . . . . . . . . . . . . . . . . . . 477

Принципы обработки исключений . . . . . . . . . . . . . . . . . . . . 477

Обработка исключений разных типов . . . . . . . . . . . . . . . . . . 483

Использование объекта исключения . . . . . . . . . . . . . . . . . . . 484

Вложенные блоки для обработки исключений . . . . . . . . . . . . . 487

Искусственное генерирование исключений . . . . . . . . . . . . . . . 490

Создание классов исключений . . . . . . . . . . . . . . . . . . . . . . . 494

Использование исключений . . . . . . . . . . . . . . . . . . . . . . . . . 496

Знакомство с потоками . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506

Взаимодействие потоков . . . . . . . . . . . . . . . . . . . . . . . . . . . 517

Примеры использования потоков . . . . . . . . . . . . . . . . . . . . . 527

Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534

Задания для самостоятельной работы . . . . . . . . . . . . . . . . . . 536

Глава 11. Программы с графическим интерфейсом . . . . . . . . . . . . . 538

Создание простого окна . . . . . . . . . . . . . . . . . . . . . . . . . . . 538

Окно с меткой и кнопкой . . . . . . . . . . . . . . . . . . . . . . . . . . . 540

Использование текстового поля . . . . . . . . . . . . . . . . . . . . . . 543

Раскрывающийся список . . . . . . . . . . . . . . . . . . . . . . . . . . . 549

Опции, переключатели и другие компоненты . . . . . . . . . . . . . . 557

Использование меню . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576

Работа с графикой . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596

Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611

Задания для самостоятельной работы . . . . . . . . . . . . . . . . . . 612

Заключение. Python и программирование . . . . . . . . . . . . . . . . . . 614

6

Вступление

КНИГА О ЯЗЫКЕ

ПРОГРАММИРОВАНИЯ PYTHON

Пошли, Скрипач, в открытый космос.

Из к/ф «Кин-дза-дза»

Сегодня существует много разных языков программирования. Некото-

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

определяют по количеству программистов, которые на постоянной осно-

ве используют его в своей работе, или по запросам работодателей, ищу-

щих сотрудников-программистов. Долгие годы традиционно популяр-

ными являются языки программирования Java, C++, C#, JavaScript

и PHP. В последнее время в этой великолепной компании все чаще упо-

минается язык программирования Python. Более того, согласно некото-

рым опросам, язык Python уже занимает лидирующие позиции. Именно

ему посвящена эта книга.

Язык Python

Обо мне придумано столько небылиц, что

я устаю их опровергать.

Из к/ф «Формула любви»

Тенденции таковы, что даже если язык Python и не является самым по-

пулярным на сегодня, то все равно нет сомнений в том, что масштабы

его применения постоянно растут. Соответственно, увеличивается спрос

на программистов, работающих с языком Python. Такая возрастающая

популярность языка во многом объясняется его простотой, красотой

и эффективностью. Спектр задач, решаемых с использованием Python,

довольно внушителен. Поэтому изучение Python — выбор вполне разум-

ный и многообещающий.

Книга о языке программирования Python

7

Чем же замечателен Python? Что в нем особенного? Ответы на эти во-

просы не такие уж и простые. Тем более что многое зависит от того, с ка-

ким языком мы будем его сравнивать. Среди наиболее важных характе-

ристик языка Python можно выделить следующие.

• Язык интерпретируемый . При первом запуске программы на выпол-

нение для нее создается промежуточный код. Именно промежуточ-

ный код используется при выполнении программы. Если впослед-

ствии в программу вносятся изменения, то при очередном запуске

программы создается новый промежуточный код.

i НА ЗАМЕТКУ

Языки программирования бывают интерпретируемыми и компилируе-

мыми. Если программа компилируется, то на основе исходного кода

создается исполнительный (машинный) код, который и выполняется

при запуске программы. Если речь идет об интерпретируемом языке,

то программа, написанная на нем, выполняется построчно, без пред-

варительной компиляции. Существует и промежуточный вариант —

нечто среднее между компилированием и интерпретированием. В та-

ком случае исходный код программы преобразуется в промежуточный

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

Интерпретируемые языки позволяют больше вольности в описании

и обработке данных. Программы, написанные на компилируемых язы-

ках, характеризуются относительно высокой скоростью выполнения.

• В плане синтаксиса язык Python прост и лаконичен. Он не содержит

избыточных конструкций. С другой стороны, язык очень строгий:

даже лишний пробел в программном коде может привести к ошибке.

Язык Python поддерживает парадигму объектно-ориентированно-

го программирования (ООП). Тем не менее он позволяет создавать

программы, не использующие классы и объекты.

i НА ЗАМЕТКУ

Концепция ООП, реализуемая в языке Python, может стать сюрпри-

зом для читателей, знакомых с такими языками программирования,

как Java, С++ и C#. Напротив, те, кто знаком с языком JavaScript, об-

наружат для себя некоторые знакомые моменты.

Язык Python удобен для создания приложений с графическим ин-

терфейсом.

Вступление

8

• Еще одним фактором, способствующим популярности языка Python,

является большое и дружное сообщество разработчиков, использую-

щих этот язык. Нет недостатка и в свободно распространяемых про-

граммных продуктах (включая среды разработки), облегчающих

знакомство и использование языка Python.

Выше представлен лишь очень общий и краткий перечень достоинств

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

когда будем рассматривать конкретные примеры и синтаксические кон-

струкции.

Особенности книги

Пацак пацака не обманывает. Это некрасиво,

родной…

Из к/ф «Кин-дза-дза»

Цель этой книги — научить читателя программировать на языке Python.

Но учиться можно по-разному. Скажем, можно слушать лекции в уни-

верситете, можно посещать курсы по программированию, а можно пы-

таться научиться самостоятельно. Последний вариант — самый труд-

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

или объяснить сложный момент. Вот именно для этого «сложного» слу-

чая в первую очередь и предназначена книга. Понятно, что совсем ис-

ключить «крутые повороты» при «прокладке маршрута» по изучению

языка Python не получится. Но мы попытаемся свести к минимуму их

количество.

Опыт показывает, что легче всего усвоить различные концепции про-

граммирования и подходы, когда они проиллюстрированы примерами.

Как раз такая методика использована в этой книге. Принципиальная за-

дача, которая при этом решается, — донести до читателя основную идею,

причем не просто на некотором абстрактном уровне, а на уровне ее при-

кладной реализации с помощью программного кода. Теоретические све-

дения приводятся в объеме минимальном, но вместе с тем достаточном

для качественного усвоения материала.

Структура книги такова, что в первой главе дается краткий обзор ос-

новных синтаксических конструкций языка Python. Это позволит чи-

тателю практически сразу, еще до завершения чтения книги, присту-

пить к созданию несложных, но вполне функциональных программных

Книга о языке программирования Python

9

кодов. Этот прием применялся в книгах, посвященных другим языкам

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

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

Главы после первой посвящены более детальному рассмотрению во-

просов, связанных с эффективным программированием в Python. Сре-

ди рассмотренных тем: работа с данными разных типов, управляющие

инструкции, списки и кортежи, множества и словари, работа с текстом,

создание функций, операции с файлами, работа с классами и объекта-

ми, наследование и специальные методы, обработка исключительных

ситуаций, создание потоков и многое другое. Последняя глава книги

содержит полезную информацию, касающуюся создания приложений

с графическим интерфейсом (с использованием библиотеки Tkinter).

Для удобства усвоения материала каждая глава заканчивается кратким

обобщением, в которое вынесены основные положения, рассмотренные

и обсуждаемые в соответствующей главе. Также каждая глава содержит

список заданий для самостоятельной работы.

i НА ЗАМЕТКУ

Материал от главы к главе усложняется постепенно. Некоторые важ-

ные моменты достаточно часто повторяются (в разном контексте),

особенно в начальных главах. Иногда одни и те же (или похожие) за-

дачи решаются разными методами. Все это сделано намеренно. Цель

простая — облегчить процесс усвоения информации и сформировать

основы для понимания принципов программирования в Python.

Программное обеспечение

Показывай свою гравицапу. Если фирменная

вещь — возьмем!

Из к/ф «Кин-дза-дза»

Для составления программных кодов мало знать язык программиро-

вания (в данном случае Python). Понадобится также определенное

программное обеспечение. Какое именно? Не помешала бы програм-

ма-редактор для набора кода. Хотя собственно программный код мы

можем набирать хоть в текстовом редакторе, вроде Notepad. Для это-

го нам достаточно создать пустой текстовый документ, внести в него

команды в соответствии с правилами языка Python и сохранить файл

Вступление

10

с расширением .py (стандартное расширение для файлов с программами

на языке Python).

i НА ЗАМЕТКУ

Помимо расширения .py файлы с Python-программами могут иметь

расширение .pyw, если мы имеем дело с программами, в которых

используется графический интерфейс (в операционной системе

Windows). У файлов, связанных с Python-проектами, могут быть и дру-

гие расширения. Например расширение .pyc имеют файлы со ском-

пилированным промежуточным кодом (файлы с байт-кодом). Опти-

мизированный байт-код сохраняется в файле с расширением .pyo ,

а расширение.pyd используется для файлов с бинарным кодом дина-

мических dll-библиотек в операционной системе Windows.

Но даже если мы так поступим, этого все же будет недостаточно. Нам

еще как минимум понадобится программа-интерпретатор, которая смо-

жет выполнить команды, написанные на языке Python. Другими сло-

вами, нам понадобится специальная программа, которая сможет понять

код, который мы написали на языке Python, и исполнит этот код. Как от-

мечалось выше, такие программы называются интерпретаторами . По-

этому обойтись совсем без специального программного обеспечения мы

не сможем. А поскольку программное обеспечение все равно придется

устанавливать, то разумно воспользоваться всем спектром возможно-

стей, доступных разработчику на языке Python. Тем более что предла-

гаемые для программирования на Python средства разработки довольно

эффективны и часто бесплатны.

Самый разумный подход при создании программ на языке Python со-

стоит в том, чтобы использовать интегрированную среду разработ-

ки (сокращенно IDE от Integrated Development Environment). Среда раз-

работки — это специальное приложение, которое позволяет набирать,

отлаживать и запускать на выполнение программные коды. Фактиче-

ски среда разработки объединяет в себе сразу несколько программ. Это

очень удобно, поскольку самые разные задачи, начиная с набора кода

и до отладки приложения и запуска его на выполнение, реализуются че-

рез одну универсальную программу. Использовать среду разработки —

разумно и удобно. Поэтому общая рекомендация состоит в том, чтобы

использовать ее. Вопрос лишь, какую именно.

Существует довольно много сред разработки для языка Python. Здесь

мы кратко остановимся лишь на некоторых, наиболее популярных

Книга о языке программирования Python

11

(и бесплатных). Но прежде чем перейти к обсуждению сред разработ-

ки, мы сделаем несколько замечаний относительно всего процесса уста-

новки программного обеспечения, необходимого для программирования

на Python.

В первую очередь необходимо установить программу-интерпретатор

(и некоторые сопутствующие утилиты). Для этого имеет смысл перей-

ти на страницу поддержки языка www.python.org. Эта страница со-

держит много полезной информации. Там, кроме прочего, в разделе за-

грузок Downloads (адрес www.python.org/downloads) можно найти

предназначенное для программирования на Python программное обес-

печение. Веб-страница с ресурсами, предназначенными для загрузки,

представлена на рис. В.1.

Рис. В.1. Страница www.python.org/downloads для загрузки программного

обеспечения для программирования на Python

Следует загрузить соответствующие файлы и выполнить установку. Про-

цесс установки простой и интуитивно понятный, поэтому особых коммен-

тариев не требует и обычно проходит без проблем. Стоит заметить, что

в этом случае автоматически будет установлена и среда разработки, назы-

ваемая IDLE. Это простая и надежная среда, которая вполне подойдет для

эффективной работы с программными кодами на языке Python.

Вступление

12

i НА ЗАМЕТКУ

Методы работы со средой IDLE, равно как и с другими средами раз-

работки, кратко описываются в первой главе.

Если читателя по каким-либо причинам среда IDLE не устроит, можно

воспользоваться другой средой. Благо, выбор достаточно большой.

i НА ЗАМЕТКУ

Обычно среды разработки устанавливаются без интерпретатора, по-

этому рекомендуется сначала установить интерпретатор (например,

загрузив файлы с сайта www.python.org), а уже после этого устанав-

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

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

Компания JetBrains предлагает для разработчиков на Python среду

разработки, которая называется PyCharm. Информация об этой среде

разработки (а также о других многочисленных разработках компании

JetBrains) представлена на сайте www.jetbrains.com. На рис. В.2

на странице открыт раздел Tools, в котором есть ссылка для загрузки

установочных файлов среды разработки PyCharm.

Рис. В.2. Страница www.jetbrains.com со ссылкой для загрузки установочных

файлов среды разработки PyCharm

Книга о языке программирования Python

13

Процесс установки среды PyCharm достаточно простой. Это удобная

и эффективная среда разработки. Правда, процесс создания приложе-

ний (по сравнению с тем, как это происходит при использовании других

сред) может показаться немного запутанным, хотя это, конечно субъ-

ективное мнение. Вместе с тем среда PyCharm является, на мой взгляд,

оптимальным выбором при работе с Python.

Достаточно удобной и функциональной является среда разработки Wing

(продукт компании Wingware). На рис. В.3 показано окно браузера, в ко-

тором открыта страница www.wingware.com поддержки проекта.

Рис. В.3. Страница www.wingware.com со ссылкой для загрузки установочных

файлов среды разработки Wing

Среда разработки Wing проста в использовании и содержит все ос-

новные утилиты, необходимые для эффективного программирования

на Python.

Наконец, стоит упомянуть среду разработки PyScripter. На рис. В.4

показано окно браузера, открытое на странице с адресом

http://sourceforge.net/projects/pyscripter/.

Это страница ресурса SourceForge, с помощью которого можно загру-

зить последнюю версию среды разработки PyScripter.

Вступление

14

Рис. В.4. Страница sourceforge.net/projects/pyscripter/ со ссылкой

для загрузки установочных файлов среды разработки PyScripter

i НА ЗАМЕТКУ

Поскольку страница поддержки среды PyScripter время от времени

меняет свой адрес, то перед загрузкой установочных файлов стоит

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

Характеризуя ситуацию в целом, стоит заметить, что большинство сред

разработки предоставляют пользователю практически одинаковый «на-

бор услуг». По крайней мере на начальном этапе, когда читатель только

будет знакомиться с языком программирования Python, нет принципи-

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

Это скорее вопрос эстетики, а не эффективности.

i НА ЗАМЕТКУ

Ситуация со средами разработки довольно изменчива: какие-то

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

Поэтому следует понимать, что перечень доступных или предпочти-

тельных сред разработки, приведенный выше, достаточно услов-

ный. Читатель вполне может использовать и иную среду.

Книга о языке программирования Python

Об авторе

Товарищ, там человек говорит, что он — ино-

планетянин. Надо что-то делать…

Из к/ф «Кин-дза-дза»

Автор книги — Васильев Алексей Николаевич, доктор физико-математи-

ческих наук, профессор кафедры теоретической физики физического

факультета Киевского национального университета имени Тараса Шев-

ченко. Автор книг по программированию и математическому модели-

рованию. Сфера его научных интересов: физика жидкостей и жидких

кристаллов, фазовые переходы и критические явления, биофизика, си-

нергетика, математическая экономика, моделирование социально-поли-

тических процессов и математическая лингвистика.

Обратная связь

— Слово лечит, разговор мысль отгоняет… Хо-

тите беседовать, сударь?

— О чем?

— О чем прикажете.

Из к/ф «Формула любви»

Высказать свои замечания и предложения относительно этой и дру-

гих книг автора можно по адресу электронной почты alex@vasilev.

kiev.ua. Автор заранее благодарен своим читателям за конструктив-

ную критику. Информацию об уже вышедших книгах, а также некоторые

полезные материалы, касающиеся этих книг (например, программные

коды примеров), можно найти на сайте www.vasilev.kiev.ua.

Благодарности

Вельми понеже… Весьма вами благодарен!

Из к/ф «Иван Васильевич меняет профессию»

Книги пишутся для того, чтобы их читали. Лучший стимул — осознание

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

самую искреннюю благодарность своим читателям: за интерес к книгам,

за критические замечания, за желание становиться лучше и умнее.

ResearchGate has not been able to resolve any citations for this publication.

ResearchGate has not been able to resolve any references for this publication.