СОДЕРЖАНИЕ....4
ГЛАВА 1. ПЕРВЫЕ ПРИМЕРЫ И ПРОГРАММЫ....14
1.1.ПЕРВАЯ ПРОГРАММА НА PYTHON....15
1.2.ПОДРОБНО О IDLE....17
1.2.1.Подсказки при вводе кода....17
1.2.2.Подсветка синтаксиса....18
1.2.3.Изменение цветовой темы....19
1.2.4.Горячие клавиши....20
1.3.ПОМЕЩЕНИЕ ПРОГРАММЫ В ОТДЕЛЬНЫЙ ФАЙЛ. КОДИРОВКА ТЕКСТА....22
1.4.СТРУКТУРА ПРОГРАММЫ....24
1.5.КОММЕНТАРИИ....28
1.6.ВВОД/ВЫВОД ДАННЫХ....29
1.7.ЧТЕНИЕ ПАРАМЕТРОВ КОМАНДНОЙ СТРОКИ....32
ГЛАВА 2 РАБОТА С ПЕРЕМЕННЫМИ И ТИПАМИ ДАННЫХ....34
2.1.ИМЕНА ПЕРЕМЕННЫХ....36
2.2.ТИПЫ ДАННЫХ....41
2.3.ПРИСВАИВАНИЕ ЗНАЧЕНИЙ....44
2.4.ПРОВЕРКА ТИПА ДАННЫХ И ПРИВЕДЕНИЕ ТИПОВ....48
2.5.УДАЛЕНИЕ ПЕРЕМЕННОЙ....51
ГЛАВА 3. ПРИМЕРЫ ОПЕРАТОРОВ PYTHON....54
3.1.МАТЕМАТИЧЕСКИЕ ОПЕРАТОРЫ И РАБОТА С ЧИСЛАМИ....55
3.1.1.Математические операторы....55
3.1.2.Пример: вычисление времени в пути....58
3.1.3.Пример: вычисление расхода топлива....59
3.1.4.Выбор правильного типа данных....60
3.2.ОПЕРАТОРЫ ДЛЯ РАБОТЫ С ПОСЛЕДОВАТЕЛЬНОСТЯМИ....62
3.3.ОПЕРАТОРЫ ПРИСВАИВАНИЯ....63
3.4.ДВОИЧНЫЕ ОПЕРАТОРЫ....64
3.5.ПРИОРИТЕТ ВЫПОЛНЕНИЯ ОПЕРАТОРОВ....65
3.6.ПРОСТЕЙШИЙ КАЛЬКУЛЯТОР....66
ГЛАВА 4 ЗНАКОМСТВО С ЦИКЛАМИ И УСЛОВНЫМИ ОПЕРАТОРАМИ....70
4.1.УСЛОВНЫЕ ОПЕРАТОРЫ....71
4.1.1.Логические значения....71
4.1.2.Операторы сравнения....72
4.1.3.Оператор if..else....74
4.1.4.Блоки кода и отступы....78
4.2.ЦИКЛЫ....79
4.2.1.Цикл for....79
4.2.2.Цикл while....82
4.2.3.Операторы break и continue.....84
4.2.4.Функция range()....85
4.3.БЕСКОНЕЧНЫЕ ЦИКЛЫ....87
4.3.1.Бесконечный цикл по ошибке....87
4.3.2.Намеренный бесконечный цикл....90
4.4.ИСТИННЫЕ И ЛОЖНЫЕ ЗНАЧЕНИЯ....92
4.5.ПРАКТИЧЕСКИЙ ПРИМЕР. ПРОГРАММА "УРОВЕНЬ ДОСТУПА"....92
ГЛАВА 5. ПРИМЕРЫ МАТЕМАТИЧЕСКИХ ФУНКЦИЙ PYTHON....96
5.1.ПОДДЕРЖИВАЕМЫЕ ТИПЫ ЧИСЕЛ....97
5.2.ЧИСЛОВЫЕ ФУНКЦИИ....100
5.2.1.Округление числовых значений....102
5.2.2.Форматирование чисел для вывода....104
5.3.МАТЕМАТИЧЕСКИЕ ФУНКЦИИ....105
5.4.СЛУЧАЙНЫЕ ЧИСЛА. МОДУЛЬ RANDOM....107
5.5.ЗНАЧЕНИЯ INFINITY И NAN....110
5.6.ВЫЧИСЛЕНИЯ С БОЛЬШИМИ ЧИСЛОВЫМИ МАССИВАМИ. БИБЛИОТЕКА NUMPY....111
5.7.ПРОГРАММА "УГАДАЙ ЧИСЛО"....112
5.7.1.Постановка задачи....112
5.7.2.Работа с генератором случайных чисел....113
5.7.3.Код программы....113
5.7.4.Исправление логической ошибки в программе....115
ГЛАВА 6 РАБОТАЕМ СО СТРОКАМИ И СТРОКОВЫМИ ФУНКЦИЯМИ....118
6.1.ЧТО ТАКОЕ СТРОКА? ВЫБОР КАВЫЧЕК....119
6.2.СОЗДАНИЕ СТРОКИ....122
6.3.ТРОЙНЫЕ КАВЫЧКИ....124
6.4.СПЕЦИАЛЬНЫЕ СИМВОЛЫ....125
6.5.ДЕЙСТВИЯ НАД СТРОКАМИ....126
6.5.1.Обращение к элементу по индексу....127
6.5.2.Срез строки....127
6.5.3.Конкатенация строк....128
6.5.4.Проверка на вхождение....129
6.5.5.Повтор....129
6.5.6.Функция lеn()....129
6.6.ФОРМАТИРОВАНИЕ СТРОКИ И МЕТОД FORMAT()....130
6.6.1.Оператор форматирования %....130
6.6.2.Методы выравнивания строки....134
6.6.3.Метод format()....134
6.7.ФУНКЦИИ И МЕТОДЫ ДЛЯ РАБОТЫ СО СТРОКАМИ....137
6.8.НАСТРОЙКА ЛОКАЛИ....143
6.9.ПОИСК И ЗАМЕНА В СТРОКЕ....144
6.10.ЧТО В СТРОКЕ?....145
6.11.ШИФРОВАНИЕ СТРОК....147
6.12.ПЕРЕФОРМАТИРОВАНИЕ ТЕКСТА. ФИКСИРОВАННОЕ ЧИСЛО КОЛОНОК....147
ГЛАВА 7. ПРИМЕРЫ РЕГУЛЯРНЫХ ВЫРАЖЕНИЙ....150
7.1.ВВЕДЕНИЕ В РЕГУЛЯРНЫЕ ВЫРАЖЕНИЯ....151
7.2.ФУНКЦИЯ COMPILE() И ОСНОВЫ РЕГУЛЯРНЫХ ВЫРАЖЕНИЙ....152
7.3.МЕТОДЫ МАТСН() И SEARCH()....158
7.4.МЕТОД FINDALL()....160
7.5.МЕТОД SUB()....160
7.6.РАЗЛИЧНЫЕ ПРАКТИЧЕСКИЕ ПРИМЕРЫ....161
7.6.1.Разделение строк с использованием разделителей....161
7.6.2.Использование маски оболочки....163
7.6.3.Совпадение текста в начале и конце строки....164
7.6.4.Поиск по шаблону....165
7.6.5.Поиск и замена текста....169
7.6.6.Удаление нежелательных символов из строки....171
ГЛАВА 8. СПИСКИ....174
8.1.ЧТО ТАКОЕ СПИСОК?....175
8.2.ОПЕРАЦИИ НАД СПИСКАМИ....177
8.3.МНОГОМЕРНЫЕ СПИСКИ....180
8.4.ПРОХОД ПО ЭЛЕМЕНТАМ СПИСКА....180
8.5.ПОИСК ЭЛЕМЕНТА В СПИСКЕ....181
8.6.ДОБАВЛЕНИЕ И УДАЛЕНИЕ ЭЛЕМЕНТОВ В СПИСКЕ....183
8.7.ПЕРЕМЕШИВАНИЕ ЭЛЕМЕНТОВ И ВЫБОР СЛУЧАЙНОГО ЭЛЕМЕНТА....184
8.8.СОРТИРОВКА СПИСКА....185
8.9.ПРЕОБРАЗОВАНИЕ СПИСКА В СТРОКУ....186
8.10.ВЫЧИСЛЕНИЯ С БОЛЬШИМИ ЧИСЛОВЫМИ МАССИВАМИ....187
8.11.ПРОГРАММА "ГАРАЖ"....190
ГЛАВА 9. КОРТЕЖИ....194
9.1.ПОНЯТИЕ КОРТЕЖА....195
9.2.СОЗДАНИЕ КОРТЕЖЕЙ....196
9.3.МЕТОДЫ КОРТЕЖЕЙ....198
9.4.ПЕРЕБОР ЭЛЕМЕНТОВ КОРТЕЖА....198
9.5.КОРТЕЖ КАК УСЛОВИЕ....199
9.6.ФУНКЦИЯ LEN() И ОПЕРАТОР IN....199
9.7.НЕИЗМЕННОСТЬ КОРТЕЖЕЙ И СЛИЯНИЯ....200
9.8.МОДУЛЬ ITERTOOLS....200
9.9.РАСПАКОВКА КОРТЕЖА В ОТДЕЛЬНЫЕ ПЕРЕМЕННЫЕ....202
9.10.СПИСКИ VS КОРТЕЖИ....208
ГЛАВА 10 МНОЖЕСТВА И СЛОВАРИ В PYTHON....210
10.1.ПОНЯТИЕ СЛОВАРЯ....211
10.2.РАЗЛИЧНЫЕ ОПЕРАЦИИ НАД СЛОВАРЯМИ....214
10.2.1.Доступ к элементу....214
10.2.2.Добавление и удаление элементов словаря....215
10.2.3.Перебор элементов словаря....215
10.2.4.Сортировка словаря....215
10.2.5.Методы keys(), values() и некоторые другие....216
10.2.6.Программа Dict....217
10.3.ПОНЯТИЕ МНОЖЕСТВА....221
10.4.ОПЕРАЦИИ НАД МНОЖЕСТВОМ....222
10.5.МЕТОДЫ МНОЖЕСТВ....224
ГЛАВА 11. ПРИМЕРЫ ПОЛЬЗОВАТЕЛЬСКИХ ФУНКЦИЙ....226
11.1.ОБЪЯВЛЕНИЕ ФУНКЦИИ....227
11.2.НЕОБЯЗАТЕЛЬНЫЕ ПАРАМЕТРЫ ФУНКЦИИ....229
11.3.ПЕРЕМЕННОЕ ЧИСЛО ПАРАМЕТРОВ....231
11.4.АНОНИМНЫЕ ФУНКЦИИ....232
11.5.ФУНКЦИИ-ГЕНЕРАТОРЫ....236
11.6.ДЕКОРАТОРЫ....237
11.7.РЕКУРСИЯ....238
11.8.ГЛОБАЛЬНЫЕ И ЛОКАЛЬНЫЕ ПЕРЕМЕННЫЕ....238
11.8.1.Инкапсуляция....238
11.8.2.Область видимости. Ключевое слово global....239
11.8.3.Стоит ли использовать глобальные переменные?....242
11.9.ДОКУМЕНТИРОВАНИЕ ФУНКЦИЙ....242
11.10.ВОЗВРАЩАЕМ НЕСКОЛЬКО ЗНАЧЕНИЙ....243
11.11.ИМЕНОВАННЫЕ АРГУМЕНТЫ....244
11.12.ПРАКТИЧЕСКИЙ ПРИМЕР: ПРОГРАММА ДЛЯ ЧТЕНИЯ RSS-ЛЕНТЫ....245
ГЛАВА 12 РАЗБИРАЕМСЯ С МОДУЛЯМИ И ПАКЕТАМИ В PYTHON....248
12.1.ПОНЯТИЕ МОДУЛЯ....249
12.2.ИНСТРУКЦИЯ IMPORT.....249
12.3.ИНСТРУКЦИЯ FROM....251
12.4.ПУТЬ ПОИСКА МОДУЛЕЙ....253
12.5.ПОВТОРНАЯ ЗАГРУЗКА МОДУЛЕЙ....254
12.6.EGG-ФАЙЛЫ....254
12.7.РАЗДЕЛЕНИЕ МОДУЛЯ НА НЕСКОЛЬКО ФАЙЛОВ....255
12.8.СОЗДАНИЕ ОТДЕЛЬНЫХ КАТАЛОГОВ ИМПОРТА КОДА ПОД ОБЩИМ ПРОСТРАНСТВОМ ИМЕН....257
12.9.ПЕРЕЗАГРУЗКА МОДУЛЕЙ....260
12.10.СОЗДАНИЕ КАТАЛОГА ИЛИ ZIP-АРХИВА, ВЫПОЛНЯЕМОГО КАК ГЛАВНЫЙ СЦЕНАРИЙ....261
12.11.ДОБАВЛЕНИЕ КАТАЛОГОВ В SYS.PATH....263
12.12.РАСПРОСТРАНЕНИЕ ПАКЕТОВ....264
ГЛАВА 13. ОБРАБОТКА ИСКЛЮЧЕНИЙ....268
13.1.ЧТО ТАКОЕ ИСКЛЮЧЕНИЕ?....269
13.2.ТИПЫ ИСКЛЮЧЕНИЙ....270
13.3.ИНСТРУКЦИЯ TRY..EXCEPT..ELSE..FINALLY....275
13.4.ИНСТРУКЦИЯ WITH.. AS....277
13.5.ГЕНЕРИРОВАНИЕ ИСКЛЮЧЕНИЙ....278
ГЛАВА 14. ООП И PYTHON....280
14.1.ОСНОВЫ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ....281
14.2.ОПРЕДЕЛЕНИЕ КЛАССА И СОЗДАНИЕ ОБЪЕКТА....284
14.3.КОНСТРУКТОР И ДЕСТРУКТОР....285
14.4.НАСЛЕДОВАНИЕ....286
14.5.СПЕЦИАЛЬНЫЕ МЕТОДЫ....288
14.6.СТАТИЧЕСКИЕ МЕТОДЫ....290
14.7.АБСТРАКТНЫЕ МЕТОДЫ....291
14.8.ПЕРЕГРУЗКА ОПЕРАТОРОВ....292
14.9.СВОЙСТВА КЛАССА....294
14.10.ДЕКОРАТОРЫ КЛАССА....295
ГЛАВА 15. ПРИМЕРЫ ИТЕРАТОРОВ И ГЕНЕРАТОРОВ....296
15.1.РУЧНОЕ ИСПОЛЬЗОВАНИЕ ИТЕРАТОРА....297
15.2.ДЕЛЕГИРОВАНИЕ ИТЕРАЦИИ....299
15.3.СОЗДАНИЕ НОВОГО ШАБЛОНА ИТЕРАЦИИ С ПОМОЩЬЮ ГЕНЕРАТОРОВ....300
15.4.РЕАЛИЗАЦИЯ ПРОТОКОЛА ИТЕРАТОРА....302
15.5.ИТЕРАЦИЯ В ОБРАТНОМ НАПРАВЛЕНИИ....304
15.6.ЭКСТРА-СОСТОЯНИЕ ФУНКЦИИ-ГЕНЕРАТОРА....306
15.7.ПРОПУСК ПЕРВОЙ ЧАСТИ ИТЕРИРУЕМОГО....307
15.8.ИТЕРИРОВАНИЕ ПО ВСЕМ ВОЗМОЖНЫМ КОМБИНАЦИЯМ ИЛИ ПЕРЕСТАНОВКАМ....309
ГЛАВА 16. МЕТАПРОГРАММИРОВАНИЕ В PYTHON....312
16.1.ВВЕДЕНИЕ В МЕТАПРОГРАММИРОВАНИЕ....313
16.2.ДЕКОРАТОРЫ....314
16.3.МЕТАКЛАССЫ....318
16.3.1.Введение в метаклассы....318
16.3.2.Пользовательские метаклассы....321
16.3.3.Использование метаклассов вместо функций....324
16.4.ГЕНЕРАЦИЯ КОДА....325
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ ИНФОРМАЦИИ....335
Данная книга является сборником различных задач и примеров, решенных с помощью языка программирования Python.
Также в книге рассмотрена базовая теоретическая часть Python, позволяющая ориентироваться в языке и создавать свои программы. Теория сопровождается большим количеством разнообразных примеров – от самых основ (переменные и типы данных; операторы и циклы; математические функции и регулярные выражения; строки, списки, кортежи и т.д.) – до более продвинутых тем (объектно-ориентированное программирование; модули и пакеты в Python, генераторы и итераторы; метапрограммирование и т.д.).