Python. Книга рецептов

Python. Книга рецептов

Python. Книга рецептов
Автор: Бизли Дэвид, Джонс Брайан К.
Переводчик: Уварова Б. В.
Дата выхода: 2019
Издательство: ДМК Пресс
Количество страниц: 649
Размер файла: 2.6 MB
Тип файла: PDF
Добавил: codelibs
 Проверить на вирусы

Python Книга рецептов_новый лого переплет....1

Книга рецептов Python_макет (1).pdf....2

задача....17

решение....17

обсуждение....21

задача-1....21

решение-1....22

обсуждение-1....23

задача-2....24

решение-2....24

обсуждение-2....24

поиск-n-максимальных-и-минимальных-элеме....27

задача-3....27

решение-3....27

обсуждение-3....27

реализация-очереди-с-приоритетом....29

задача-4....28

решение-4....28

обсуждение-4....28

отображение-ключей-на-несколько-значений....33

задача-5....30

решение-5....30

обсуждение-5....30

поддержание-порядка-в-словарях....35

задача-6....31

решение-6....31

обсуждение-6....31

вычисления-на-словарях....36

задача-7....32

решение-7....32

обсуждение-7....32

задача-8....33

решение-8....33

обсуждение-8....34

задача-9....34

решение-9....34

обсуждение-9....35

задача-10....35

решение-10....35

обсуждение-10....38

определение-наиболее-часто-встречающихся....39

проблема....39

решение-11....39

обсуждение-11....39

сортировка-списка-словарей-по-общему-клю....41

задача-11....40

решение-12....40

обсуждение-12....41

сортировка-объектов-не-поддерживающих-ср....44

задача-12....41

решение-13....41

обсуждение-13....42

группирование-записей-на-основе-полей....46

задача-13....42

решение-14....42

обсуждение-14....42

фильтрование-элементов-последовательност....48

задача-14....43

решение-15....43

обсуждение-15....44

задача-15....45

решение-16....45

обсуждение-16....45

задача-16....46

решение-17....46

обсуждение-17....49

одновременное-преобразование-и-сокращени....52

задача-17....50

решение-18....50

обсуждение-18....51

объединение-нескольких-отображений-в-одн....54

задача-18....52

решение-19....52

обсуждение-19....52

строки-и-текст....57

разрезание-строк-разделенных-различными-....58

задача-19....53

решение-20....53

поиск-текста-в-начале-и-в-конце-строки....60

задача-20....55

решение-21....55

обсуждение-20....55

задача-21....56

решение-22....56

обсуждение-21....57

задача-22....57

решение-23....57

обсуждение-22....58

поиск-и-замена-текста....63

задача-23....62

решение-24....62

обсуждение-23....63

поиск-и-замена-текста-без-учета-регистра....65

задача-24....63

решение-25....63

обсуждение-24....64

определение-регулярных-выражений-для-пои....66

задача-25....64

решение-26....64

обсуждение-25....65

написание-регулярного-выражения-для-мног....68

задача-26....65

решение-27....65

обсуждение-26....65

приведение-текста-в-unicode-к-стандартно....70

задача-27....66

решение-28....66

обсуждение-27....67

использование-символов-unicode-в-регуляр....73

задача-28....67

решение-29....68

обсуждение-28....68

задача-29....68

решение-30....68

обсуждение-29....69

решение-31....69

решение-32....69

выравнивание-текстовых-строк....74

задача-30....74

решение-33....74

обсуждение-31....74

объединение-и-конкатенация-строк....76

задача-31....75

решение-34....75

обсуждение-32....76

интерполяция-переменных-в-строках....80

задача-32....77

решение-35....77

обсуждение-33....78

разбивка-текста-на-фиксированное-количес....84

задача-33....79

решение-36....79

обсуждение-34....80

задача-34....80

решение-37....80

обсуждение-35....80

задача-35....81

решение-38....81

обсуждение-36....82

задача-36....83

решение-39....83

обсуждение-37....88

задача-37....91

решение-40....91

обсуждение-38....92

решение-41....98

обсуждение-39....98

выполнение-точных-вычислений-с-десятичны....100

задача-39....99

решение-42....99

обсуждение-40....100

форматирование-чисел-для-вывода....104

задача-40....101

решение-43....101

обсуждение-41....101

работа-с-бинарными-восьмеричными-и-шестн....107

задача-41....102

решение-44....102

обсуждение-42....103

упаковка-и-распаковка-больших-целых-чисе....110

задача-42....104

решение-45....104

обсуждение-43....104

задача-43....105

решение-46....105

обсуждение-44....105

задача-44....106

решение-47....106

обсуждение-45....106

решение-48....107

обсуждение-46....108

задача-46....108

решение-49....108

обсуждение-47....113

вычисления-с-матрицами-и-линейная-алгебр....116

задача-47....113

решение-50....113

обсуждение-48....114

случайный-выбор....118

решение-51....114

обсуждение-49....115

перевод-дней-в-секунды-и-другие-базовые-....121

задача-49....116

решение-52....116

обсуждение-50....117

определение-даты-последней-пятницы....122

задача-50....117

решение-53....117

обсуждение-51....118

задача-51....119

решение-54....119

обсуждение-52....119

задача-52....120

решение-55....120

обсуждение-53....120

задача-53....121

решение-56....121

обсуждение-54....125

итераторы-и-генераторы....128

ручное-прохождение-по-итератору....129

решение-57....126

делегирование-итерации....130

задача-55....127

решение-58....128

обсуждение-56....128

создание-новых-итерационных-паттернов-с-....132

задача-56....128

решение-59....128

обсуждение-57....129

реализация-протокола-итератора....134

задача-57....129

обсуждение-58....130

итерирование-в-обратном-порядке....137

задача-58....131

решение-61....131

обсуждение-59....132

задача-59....132

решение-62....132

обсуждение-60....132

задача-60....133

решение-63....133

обсуждение-61....133

задача-61....134

решение-64....134

обсуждение-62....135

итерирование-по-всем-возможным-комбинаци....139

задача-62....138

обсуждение-63....139

итерирование-по-парам-индекс-значение-по....141

задача-63....140

решение-66....140

обсуждение-64....141

одновременное-итерирование-по-нескольким....145

задача-64....141

решение-67....141

обсуждение-65....142

итерирование-по-элементам-находящимся-в-....147

проблема-1....142

решение-68....143

обсуждение-66....143

создание-каналов-для-обработки-данных....149

задача-65....144

решение-69....144

обсуждение-67....145

задача-66....147

решение-70....147

обсуждение-68....147

задача-67....148

решение-71....148

обсуждение-69....148

решение-72....151

обсуждение-70....151

файлы-и-ввод-вывод....154

чтение-и-запись-текстовых-данных....154

решение-73....152

решение-74....153

обсуждение-71....154

перенаправление-вывода-в-файл....159

задача-69....155

решение-75....155

обсуждение-72....155

вывод-с-другим-разделителем-или-символом....160

задача-70....155

решение-76....155

обсуждение-73....155

чтение-и-запись-бинарных-данных....161

задача-71....156

решение-77....156

обсуждение-74....156

запись-в-файл-которого-ещё-нет....164

задача-72....157

решение-78....157

обсуждение-75....158

задача-73....158

решение-79....158

обсуждение-76....159

задача-74....159

решение-80....159

обсуждение-77....159

задача-75....160

решение-81....160

обсуждение-78....161

задача-76....161

решение-82....161

обсуждение-79....161

отображаемые-в-память-бинарные-файлы....165

задача-77....164

решение-83....164

обсуждение-80....165

манипулирование-путями-к-файлам....169

задача-78....166

решение-84....166

обсуждение-81....167

проверка-существования-файла....171

задача-79....167

решение-85....167

обсуждение-82....167

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

задача-80....168

решение-86....168

обсуждение-83....168

обход-кодировки-имен-файлов....174

задача-81....169

решение-87....169

обсуждение-84....170

задача-82....170

решение-88....170

обсуждение-85....170

задача-83....172

решение-89....172

обсуждение-86....172

задача-84....173

решение-90....173

обсуждение-87....176

оборачивание-существующего-дескриптора-ф....176

задача-85....176

решение-91....176

обсуждение-88....177

создание-временных-файлов-и-каталогов....180

задача-86....178

решение-92....178

обсуждение-89....179

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

задача-87....179

обсуждение-90....180

сериализация-объектов-python....186

задача-88....180

решение-94....180

задача-89....183

решение-95....183

обсуждение-92....184

чтение-и-запись-в-формате-json....190

задача-90....188

решение-96....188

обсуждение-93....188

парсинг-простых-xml-данных....195

задача-91....191

обсуждение-94....191

задача-92....193

решение-98....193

обсуждение-95....197

преобразование-словарей-в-xml....200

задача-93....198

решение-99....198

обсуждение-96....199

парсинг-изменение-и-перезапись-xml....203

задача-94....200

решение-100....200

обсуждение-97....200

парсинг-xml-документов-с-пространствами-....205

задача-95....201

решение-101....201

обсуждение-98....202

задача-96....203

решение-102....203

обсуждение-99....204

задача-97....205

решение-103....205

обсуждение-100....205

задача-98....206

решение-104....206

обсуждение-101....206

задача-99....206

решение-105....209

обсуждение-102....209

чтение-вложенных-и-различных-по-размеру-....215

задача-100....212

решение-106....212

обсуждение-103....220

суммирование-данных-и-обсчёт-статистики....226

задача-101....222

решение-107....222

обсуждение-104....223

функции....229

определение-функций-принимающих-любое-ко....229

задача-102....223

решение-108....223

обсуждение-105....224

определение-функций-принимающих-только-и....231

задача-103....225

решение-109....225

обсуждение-106....226

задача-104....226

решение-110....226

обсуждение-107....227

задача-105....227

решение-111....227

обсуждение-108....227

задача-106....228

решение-112....228

обсуждение-109....228

определение-анонимных-функций-или-функци....234

задача-107....233

решение-113....233

обсуждение-110....233

захват-переменных-в-анонимных-функциях....236

задача-108....234

решение-114....234

обсуждение-111....234

заставляем-вызывамый-объект-с-n-аргумент....237

задача-109....235

решение-115....235

обсуждение-112....236

замена-классов-с-одним-методом-функциями....242

задача-110....238

решение-116....238

обсуждение-113....238

задача-111....238

решение-117....239

обсуждение-114....240

задача-112....241

решение-118....243

обсуждение-115....244

доступ-к-переменным-определенным-внутри-....248

задача-113....245

решение-119....245

обсуждение-116....245

классы-и-объекты....252

изменение-строкового-представления-экзем....253

задача-114....248

решение-120....248

обсуждение-117....248

настройка-строкового-форматирования....254

задача-115....249

решение-121....249

обсуждение-118....250

задача-116....250

решение-122....250

задача-117....252

решение-123....252

обсуждение-120....253

инкапсуляция-имён-в-классе....255

задача-118....255

решение-124....255

обсуждение-121....256

создание-управляемых-атрибутов....258

задача-119....256

решение-125....256

обсуждение-122....258

вызов-метода-родительского-класса....265

задача-120....259

решение-126....259

обсуждение-123....260

задача-121....263

решение-127....263

обсуждение-124....266

создание-нового-типа-атрибута-класса-или....270

задача-122....268

решение-128....268

обсуждение-125....269

использование-лениво-вычисляемых-свойств....275

решение-129....270

обсуждение-126....271

задача-124....272

решение-130....272

обсуждение-127....273

определение-интерфейса-или-абстрактного-....279

задача-125....278

решение-131....278

обсуждение-128....279

реализации-модели-данных-или-системы-тип....283

решение-132....280

решение-133....281

обсуждение-129....282

задача-126....285

решение-134....285

обсуждение-130....289

делегирование-доступа-к-атрибуту....291

задача-127....290

решение-135....290

обсуждение-131....292

определение-более-одного-конструктора-в-....297

задача-128....294

решение-136....294

обсуждение-132....294

создание-экземпляра-без-вызова-init....300

задача-129....295

решение-137....295

обсуждение-133....295

задача-130....296

решение-138....296

обсуждение-134....297

задача-131....302

решение-139....302

обсуждение-135....303

вызов-метода-объекта-с-передачей-имени-м....311

задача-132....306

решение-140....306

обсуждение-136....306

реализация-шаблона-проектирования-посети....313

задача-133....307

решение-141....307

обсуждение-137....309

реализация-шаблона-посетитель-без-рекурс....315

задача-134....314

обсуждение-138....316

управление-памятью-в-циклических-структу....324

задача-135....319

решение-143....319

обсуждение-139....319

задача-136....321

решение-144....321

обсуждение-140....325

создание-закэшированных-экземпляров....326

обсуждение-141....326

метапрограммирование....332

создание-обёртки-для-функции....333

задача-138....329

решение-146....329

обсуждение-142....329

сохранение-метаданных-функции-при-написа....336

задача-139....330

решение-147....330

обсуждение-143....331

задача-140....332

решение-148....332

обсуждение-144....332

задача-141....333

решение-149....333

обсуждение-145....333

задача-142....334

решение-150....334

обсуждение-146....338

определение-декоратора-принимающего-необ....340

задача-143....339

решение-151....339

обсуждение-147....339

принудительная-проверка-типов-в-функции-....343

задача-144....341

решение-152....341

обсуждение-148....341

задача-145....343

решение-153....343

обсуждение-149....344

задача-146....345

решение-154....345

обсуждение-150....346

применение-декораторов-к-методам-класса-....349

задача-147....349

решение-155....349

обсуждение-151....350

написание-декораторов-которые-добавляют-....353

задача-148....351

решение-156....351

обсуждение-152....351

использование-декораторов-как-патчей-опр....356

задача-149....353

решение-157....353

обсуждение-153....353

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

задача-150....354

решение-158....354

обсуждение-154....356

захват-порядка-определения-атрибутов-кла....362

задача-151....356

решение-159....356

обсуждение-155....357

задача-152....359

решение-160....359

обсуждение-156....362

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

решение-161....363

обсуждение-157....364

принуждение-к-использованию-соглашений-о....368

решение-162....365

обсуждение-158....367

задача-155....368

решение-163....368

обсуждение-159....369

задача-156....370

решение-164....370

обсуждение-160....373

реализация-множественной-диспетчеризации....375

задача-157....374

решение-165....374

обсуждение-161....376

избежание-повторяющихся-методов-свойств....384

задача-158....378

решение-166....378

обсуждение-162....379

задача-159....379

решение-167....379

обсуждение-163....380

задача-160....380

решение-168....380

обсуждение-164....384

задача-161....386

решение-169....386

обсуждение-165....387

дизассемблирование-байт-кода-python....393

задача-162....389

решение-170....389

обсуждение-166....389

задача-163....391

решение-171....391

обсуждение-167....391

задача-164....392

решение-172....392

обсуждение-168....393

задача-165....393

решение-173....393

обсуждение-169....394

разделение-модуля-на-несколько-файлов....398

задача-166....397

решение-174....398

обсуждение-170....398

заставляем-отдельные-каталоги-с-кодом-им....401

задача-167....400

решение-175....400

обсуждение-171....400

перезагрузка-модулей....406

задача-168....401

решение-176....401

обсуждение-172....401

создание-каталога-или-zip-архива-запуска....407

задача-169....402

решение-177....402

обсуждение-173....403

задача-170....403

решение-178....403

обсуждение-174....404

задача-171....405

решение-179....405

обсуждение-175....405

задача-172....406

решение-180....406

обсуждение-176....406

задача-173....406

решение-181....407

обсуждение-177....414

применение-к-модулям-патчей-во-время-имп....427

задача-174....423

решение-182....423

обсуждение-178....424

задача-175....425

решение-183....426

обсуждение-179....426

задача-176....426

решение-184....426

обсуждение-180....426

задача-177....427

решение-185....427

обсуждение-181....430

модули-и-пакеты....432

сети-и-веб-программирование....432

взаимодействие-с-http-сервисами-в-роли-к....432

задача-178....431

обсуждение-182....433

создание-tcp-сервера....438

задача-179....434

решение-187....434

обсуждение-183....435

задача-180....436

решение-188....436

обсуждение-184....437

задача-181....438

решение-189....438

обсуждение-185....441

создание-простого-rest-интерфейса....442

задача-182....442

решение-190....442

обсуждение-186....443

реализация-простого-удалённого-вызова-пр....450

задача-183....446

решение-191....446

обсуждение-187....446

задача-184....447

решение-192....447

обсуждение-188....448

задача-185....449

решение-193....449

обсуждение-189....452

jsonrpcclient.py....455

простая-аутентификация-клиентов....455

задача-186....454

решение-194....454

обсуждение-190....455

добавление-ssl-в-сетевые-сервисы....459

задача-187....455

решение-195....455

обсуждение-191....458

передача-файловых-дескрипторов-сокетов-м....463

задача-188....462

решение-196....463

обсуждение-192....464

разбираемся-с-вводом-выводом-управляемым....470

задача-189....465

решение-197....466

отсылка-и-получение-больших-массивов....474

задача-190....473

решение-198....473

обсуждение-194....473

конкурентное-программирование....478

запуск-и-остановка-потоков....478

задача-191....475

решение-199....475

обсуждение-195....477

как-узнать-стартовал-ли-поток....484

задача-192....478

решение-200....478

обсуждение-196....479

задача-193....480

решение-201....480

обсуждение-197....485

блокировка-критически-важных-участков....489

задача-194....487

решение-202....487

обсуждение-198....487

задача-195....490

решение-203....490

обсуждение-199....491

задача-196....493

решение-204....493

обсуждение-200....495

создание-пула-потоков....497

задача-197....496

решение-205....496

обсуждение-201....497

простое-параллельное-программирование....502

задача-198....499

решение-206....499

обсуждение-202....499

задача-199....502

решение-207....502

обсуждение-203....505

определение-акторной-задачи....508

задача-200....506

решение-208....506

обсуждение-204....508

реализация-системы-сообщений-опубликоват....513

задача-201....509

решение-209....509

обсуждение-205....510

задача-202....512

решение-210....512

обсуждение-206....518

обсуждение-207....519

опрашивание-многопоточных-очередей....523

задача-203....520

решение-211....520

обсуждение-208....521

задача-204....522

решение-212....522

обсуждение-209....523

полезные-скрипты-и-системное-администрир....529

скрипты-принимающие-ввод-через-перенапра....529

задача-205....528

решение-213....528

обсуждение-210....528

завершение-программы-с-выводом-сообщения....531

решение-214....529

обсуждение-211....529

парсинг-аргументов-командной-строки....532

задача-207....529

решение-215....529

обсуждение-212....530

запрос-пароля-во-время-выполнения....536

задача-208....532

решение-216....532

обсуждение-213....532

задача-209....532

решение-217....532

обсуждение-214....532

задача-210....532

решение-218....532

обсуждение-215....533

задача-211....534

решение-219....534

обсуждение-216....535

создание-и-распаковка-архивов....538

задача-212....538

решение-220....538

обсуждение-217....538

поиск-файлов-по-имени....539

задача-213....538

решение-221....538

обсуждение-218....539

чтение-конфигурационных-файлов....542

задача-214....539

решение-222....539

обсуждение-219....540

добавление-логирования-в-простые-скрипты....546

задача-215....542

решение-223....542

обсуждение-220....543

задача-216....544

решение-224....544

обсуждение-221....544

задача-217....545

решение-225....545

обсуждение-222....546

задача-218....546

решение-226....549

обсуждение-223....550

запуск-браузера....551

задача-219....550

решение-227....550

обсуждение-224....551

тестирование-отдадка-и-исключения....553

тестирование-отправки-вывода-в-stdout....553

задача-220....551

решение-228....552

патчинг-объектов-в-юнит-тестах....557

задача-221....553

решение-229....553

обсуждение-226....553

проверка-вызывающих-исключения-условий-в....561

задача-222....555

решение-230....555

обсуждение-227....556

задача-223....556

решение-231....556

обсуждение-228....557

задача-224....558

решение-232....558

обсуждение-229....558

обработка-множественных-исключений....561

задача-225....561

решение-233....561

обсуждение-230....561

ловим-все-исключения....564

задача-226....562

решение-234....562

обсуждение-231....562

создание-собственных-исключений....565

задача-227....563

решение-235....563

обсуждение-232....564

возбужение-исключения-в-ответ-на-другое-....569

задача-228....565

решение-236....565

обсуждение-233....566

задача-229....567

решение-237....567

обсуждение-234....567

задача-230....567

решение-238....567

обсуждение-235....568

задача-231....569

решение-239....569

обсуждение-236....570

профилирование-и-замеры-времени-выполнен....573

решение-240....573

обсуждение-237....574

заставляем-ваши-программы-выполняться-бы....577

задача-233....575

решение-241....575

обсуждение-238....578

задача-234....580

решение-242....580

обсуждение-239....584

задача-235....588

решение-243....588

обсуждение-240....589

задача-236....591

решение-244....591

обсуждение-241....592

управление-непрозрачными-указателями-в-м....596

задача-237....595

решение-245....595

обсуждение-242....596

определение-и-экспортирование-с-api-из-м....600

задача-238....597

решение-246....597

обсуждение-243....599

задача-239....601

решение-247....601

обсуждение-244....602

освобождение-gil-в-расширениях-на-c....609

задача-240....607

решение-248....607

обсуждение-245....608

смешивание-потоков-из-c-и-python....610

задача-241....608

решение-249....608

обсуждение-246....609

оборачивание-кода-на-c-в-swig....613

задача-242....609

решение-250....609

обсуждение-247....610

задача-243....613

решение-251....613

обсуждение-248....617

использование-cython-для-высокопроизводи....624

задача-244....620

решение-252....620

обсуждение-249....621

задача-245....623

решение-253....624

обсуждение-250....624

передача-null-терминированных-строк-библ....627

задача-246....627

решение-254....627

обсуждение-251....628

передача-строк-unicode-в-библиотеки-на-c....632

задача-247....630

решение-255....630

обсуждение-252....631

задача-248....633

решение-256....633

обсуждение-253....634

задача-249....634

решение-257....634

обсуждение-254....635

передача-имён-файлов-в-расширения-на-с....640

задача-250....639

решение-258....639

обсуждение-255....640

передача-открытых-файлов-в-расширения-на....641

задача-251....640

обсуждение-256....641

чтение-файлоподобных-объектов-из-c....644

задача-252....641

решение-260....641

обсуждение-257....642

задача-253....643

решение-261....643

обсуждение-258....643

задача-254....644

обсуждение-259....644

Предисловие....13

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

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

Колофон....19

Вступительное слово....20

Структуры данных и алгоритмы....21

1.1. Распаковка последовательности в отдельные переменные....21

1.2. Распаковка элементов из последовательностей произвольной длины....23

1.3. Оставляем N последних элементов....25

1.4. Поиск N максимальных и минимальных элементов....27

1.5. Реализация очереди с приоритетом....28

1.6. Отображение ключей на несколько значений в словаре....31

1.7. Поддержание порядка в словарях....32

1.8. Вычисления со словарями....33

1.9. Поиск общих элементов в двух словарях....35

1.10. Удаление дубликатов из последовательности с сохранением порядка элементов....36

1.11. Присваивание имен срезам....37

1.12. Определение наиболее часто встречающихся элементов в последовательности....39

1.13. Сортировка списка словарей по общему ключу....41

1.14. Сортировка объектов, не поддерживающих сравнение....42

1.15. Группирование записей на основе полей....43

1.16. Фильтрование элементов последовательности....45

1.17. Извлечение подмножества из словаря....47

1.18. Отображение имен на последовательность элементов....48

1.19. Одновременное преобразование и сокращение (свертка) данных....51

1.20. Объединение нескольких отображений в одно....52

Строки и текст....55

2.1. Разрезание строк различными разделителями....55

2.2. Поиск текста в начале и в конце строки....56

2.3. Поиск строк с использованием масок оболочки (shell)....58

2.4. Поиск совпадений и поиск текстовых паттернов....59

2.5. Поиск и замена текста....62

2.6. Поиск и замена текста без учета регистра....64

2.7. Определение регулярных выражений для поиска кратчайшего совпадения....65

2.8. Написание регулярного выражения для многострочных шаблонов....66

2.9. Нормализация текста в Unicode к стандартному представлению....67

2.10. Использование символов Unicode в регулярных выражениях....69

2.11. Срезание нежелательных символов из строк....70

2.12. Чистка строк....71

2.13. Выравнивание текстовых строк....74

2.14. Объединение и конкатенация строк....75

2.15. Интерполяция переменных в строках....78

2.16. Разбивка текста на фиксированное количество колонок....80

2.17. Работа с HTML- и XML-сущностями в тексте....81

2.18. Токенизация текста....83

2.19. Написание простого парсера на основе метода рекурсивного спуска....85

2.20. Выполнение текстовых операций над байтовыми строками....94

Числа, даты и время....98

3.1. Округление числовых значений....98

3.2. Выполнение точных вычислений с десятичными дробями....99

3.3. Форматирование чисел для вывода....101

3.4. Работа с бинарными, восьмеричными и шестнадцатеричными целыми числами....103

3.5. Упаковка и распаковка больших целых чисел из байтовых строк....105

3.6. Вычисления с комплексными числами....106

3.7. Работа с бесконечными значениями и NaN....108

3.8. Вычисления с дробями....110

3.9. Вычисления на больших массивах чисел....111

3.10. Вычисления с матрицами и линейная алгебра....114

3.11. Случайный выбор....116

3.12. Перевод дней в секунды и другие базовые методы конвертации времени....118

3.13. Определение даты последней пятницы....120

3.14. Поиск диапазона дат для текущего месяца....121

3.15. Конвертирование строк в даты и время....123

3.16. Манипулирование датами с учетом временных зон....124

Итераторы и генераторы....127

4.1. Ручное прохождение по итератору....127

4.2. Делегирование итерации....128

4.3. Создание новых итерационных паттернов с помощью генераторов....129

4.4. Реализация протокола итератора....131

4.5. Итерирование в обратном порядке....133

4.6. Определение генератора с дополнительным состоянием....134

4.7. Получение среза итератора....135

4.8. Пропуск первой части итерируемого объекта....136

4.9. Итерирование по всем возможным комбинациям и перестановкам....138

4.10. Итерирование по парам «индекс–значение» последовательности....140

4.11. Одновременное итерирование по нескольким последовательностям....142

4.12. Итерирование по элементам, находящимся в отдельных контейнерах....144

4.13. Создание каналов для обработки данных....145

4.14. Превращение вложенной последовательности в плоскую....148

4.15. Последовательное итерирование по слитым отсортированным итерируемым объектам....150

4.16. Замена бесконечных циклов while итератором....151

Файлы и ввод-вывод....153

5.1. Чтение и запись текстовых данных....153

5.2. Перенаправление вывода в файл....155

5.3. Вывод с другим разделителем или символом конца строки....156

5.4. Чтение и запись бинарных данных....157

5.5. Запись в файл, которого еще нет....159

5.6. Выполнение операций ввода-вывода над строками....160

5.7. Чтение и запись сжатых файлов с данными....161

5.8. Итерирование по записям фиксированного размера....162

5.9. Чтение бинарных данных в изменяемый (мутабельный) буфер....163

5.10. Отображаемые в память бинарные файлы....164

5.11. Манипулирование путями к файлам....167

5.12. Проверка существования файла....168

5.13. Получение содержимого каталога....169

5.14. Обход кодировки имен файлов....170

5.15. Вывод «плохих» имен файлов....171

5.16. Добавление или изменение кодировки уже открытого файла....173

5.17. Запись байтов в текстовый файл....175

5.18. Оборачивание существующего дескриптора файла для использования в качестве объекта файла....176

5.19. Создание временных файлов и каталогов....178

5.20. Работа с последовательными портами....180

5.21. Сериализация объектов Python....181

Кодирование и обработка данных....185

6.1. Чтение и запись данных в формате CSV....185

6.2. Чтение и запись в формате JSON....188

6.3. Парсинг простых XML-данных....193

6.4. Пошаговый парсинг очень больших XML-файлов....195

6.5. Преобразование словарей в XML....199

6.6. Парсинг, изменение и перезапись XML....200

6.7. Парсинг XML-документов с пространствами имен....202

6.8. Взаимодействие с реляционной базой данных....204

6.9. Декодирование и кодирование шестнадцатеричных цифр....207

6.10. Кодирование и декодирование в Base64....208

6.11. Чтение и запись бинарных массивов структур....209

6.12. Чтение вложенных и различных по размеру бинарных структур....213

6.13. Суммирование данных и обсчет статистики....223

Функции....226

7.1. Определение функций, принимающих любое количество аргументов....226

7.2. Определение функций, принимающих только именованные аргументы....227

7.3. Прикрепление информационных метаданных к аргументам функций....228

7.4. Возвращение функцией нескольких значений....229

7.5. Определение функций с аргументами по умолчанию....230

7.6. Определение анонимных функций или встроенных функций (inline)....233

7.7. Захват переменных в анонимных функциях....234

7.8. Заставляем вызываемый объект с N аргументами работать так же, как вызываемый объект с меньшим количеством аргументов....235

7.9. Замена классов с одним методом функциями....239

7.10. Передача дополнительного состояния с функциями обратного вызова....240

7.11. Встроенные функции обратного вызова....243

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

Классы и объекты....249

8.1. Изменение строкового представления экземпляров....249

8.2. Настройка строкового форматирования....250

8.3. Создание объектов, поддерживающих протокол менеджера контекста....252

8.4. Экономия памяти при создании большого количества экземпляров....254

8.5. Инкапсуляция имен в классе....255

8.6. Создание управляемых атрибутов....257

8.7. Вызов метода родительского класса....261

8.8. Расширение свойства в подклассе....265

8.9. Создание нового типа атрибута класса или экземпляра....269

8.10. Использование лениво вычисляемых свойств....272

8.11. Упрощение инициализации структур данных....275

8.12. Определение интерфейса или абстрактного базового класса....278

8.13. Реализации модели данных или системы типов....281

8.14. Реализация собственных контейнеров....287

8.15. Делегирование доступа к атрибуту....291

8.16. Определение более одного конструктора в классе....295

8.17. Создание экземпляра без вызова init....296

8.18. Расширение классов с помощью миксин (mixins)....298

8.19. Реализация объектов с состоянием или конечных автоматов....303

8.20. Вызов метода объекта с передачей имени метода в строке....308

8.21. Реализация шаблона проектирования «Посетитель»....310

8.22. Реализация шаблона «Посетитель» без рекурсии....314

8.23. Управление памятью в циклических структурах данных....320

8.24. Заставляем классы поддерживать операции сравнения....324

8.25. Создание закешированных экземпляров....326

Метапрограммирование....330

9.1. Создание обертки для функции....330

9.2. Сохранение метаданных функции при написании декораторов....332

9.3. Снятие («разворачивание») декоратора....333

9.4. Определение декоратора, принимающего аргументы....335

9.5. Определение декоратора с настраиваемыми пользователем атрибутами....336

9.6. Определение декоратора, принимающего необязательный аргумент....339

9.7. Принудительная проверка типов в функции с использованием декоратора....341

9.8. Определение декораторов как части класса....345

9.9. Определение декораторов как классов....347

9.10. Применение декораторов к методам класса и статическим методам....349

9.11. Написание декораторов, которые добавляют аргументы обернутым функциям....351

9.12. Использование декораторов для исправления определений классов....354

9.13. Использование метакласса для управления созданием экземпляров....356

9.14. Захват порядка определения атрибутов класса....358

9.15. Определение метакласса, принимающего необязательные аргументы....361

9.16. Принудительная установка аргументной сигнатуры при использовании *args и **kwargs....363

9.17. Принуждение к использованию соглашений о кодировании в классах....366

9.18. Программное определение классов....369

9.19. Инициализация членов класса во время определения....372

9.20. Реализация множественной диспетчеризации с помощью аннотаций функций....374

9.21. Избежание повторяющихся методов свойств....380

9.22. Легкий способ определения менеджеров контекста....382

9.23. Выполнение кода с локальными побочными эффектами....384

9.24. Парсинг и анализ исходного кода Python....386

9.25. Дизассемблирование байт-кода Python....390

Модули и пакеты....394

10.1. Создание иерархического пакета модулей....394

10.2. Контроль импортирования....395

10.3. Импортирование подмодулей пакета с использованием относительных имен....396

10.4. Разделение модуля на несколько файлов....398

10.5. Создание отдельных каталогов с кодом для импорта под общим пространством имен....400

10.6. Перезагрузка модулей....402

10.7. Создание каталога или zip-архива, запускаемых как основной скрипт....403

10.8. Чтение файлов с данными внутри пакета....404

10.9. Добавление каталогов в sys.path....405

10.10. Импортирование модулей с использованием имени, передаваемого в форме строки ....407

10.11. Загрузка модулей с удаленного компьютера с использованием хуков импортирования....408

10.12. Применение к модулям изменений при импорте....424

10.13. Установка пакетов «только для себя»....427

10.14. Создание нового окружения Python....427

10.15. Распространение пакетов....429

Сети и веб-программирование....431

11.1. Взаимодействие с HTTP-сервисами в роли клиента....431

11.2. Создание TCP-сервера....435

11.3. Создание UDP-сервера....438

11.4. Генерация диапазона IP-адресов из CIDR-адреса....440

11.5. Создание простого REST-интерфейса....442

11.6. Реализация простого удаленного вызова процедуры через XML-RPC....447

11.7. Простое взаимодействие между интерпретаторами....449

11.8. Реализация удаленного вызова процедур....451

11.9. Простая аутентификация клиентов....454

11.10. Добавление SSL в сетевые сервисы....456

11.11. Передача файловых дескрипторов сокетов между процессами....462

11.12. Разбираемся с вводом-выводом, управляемым событиями (event-driven I/0)....467

11.13. Отсылка и получение больших массивов....473

Конкурентность....476

12.1. Запуск и остановка потоков....476

12.2. Как узнать, стартовал ли поток....479

12.3. Коммуникация между потоками....482

12.4. Блокировка критически важных участков....487

12.5. Блокировка с избежанием дедлока....490

12.6. Хранение специфичного состояния потока....494

12.7. Создание пула потоков....496

12.8. Простое параллельное программирование....499

12.9. Разбираемся с GIL (и перестаем волноваться по этому поводу)....503

12.10. Определение акторной задачи....506

12.11. Реализация системы сообщений «опубликовать/подписаться» (pub/sub)....510

12.12. Использование генераторов в качестве альтернативы потокам....513

12.13. Опрашивание многопоточных очередей....521

12.14. Запуск процесса-демона на Unix....524

Полезные скрипты и системное администрирование....528

13.1. Скрипты, принимающие ввод через перенаправление, каналы или файлы....528

13.2. Завершение программы с выводом сообщения об ошибке....529

13.3. Парсинг аргументов командной строки....530

13.4. Запрос пароля во время выполнения....533

13.5. Получение размера окна терминала....533

13.6. Выполнение внешней команды и получение ее вывода....534

13.7. Копирование или перемещение файлов и каталогов....536

13.8. Создание и распаковка архивов....538

13.9. Поиск файлов по имени....538

13.10. Чтение конфигурационных файлов....540

13.11. Добавление логирования в простые скрипты....543

13.12. Добавление логирования в библиотеки....546

13.13. Создание таймера-секундомера....547

13.14. Установка лимитов на использование памяти и CPU....549

13.15. Запуск браузера....550

Тестирование, отладка и исключения....552

14.1. Тестирование отправки вывода в stdout....552

14.2. Изменение объектов в юнит-тестах....553

14.3. Проверка вызывающих исключения условий в рамках юнит-тестов....557

14.4. Логирование вывода теста в файл....558

14.5. Пропуск или ожидание провалов тестов....560

14.6. Обработка множественных исключений....561

14.7. Ловим все исключения....563

14.8. Создание собственных исключений....564

14.9. Возбужение исключения в ответ на другое исключение....566

14.10. Повторное возбуждение последнего исключения....568

14.11. Вывод предупреждающих сообщений....569

14.12. Отладка основных сбоев программы....570

14.13. Профилирование и замеры времени выполнения вашей программы....573

14.14. Заставляем ваши программы выполняться быстрее....575

Расширения на языке C....581

15.1. Доступ к коду на C с использованием ctypes....582

15.2. Написание простого модуля расширения на C....589

15.3. Написание функции расширения для работы с массивами....593

15.4. Управление непрозрачными указателями в модулях расширения на C....595

15.5. Определение и экспортирование С API из модулей расширения....598

15.6. Вызываем Python из С....602

15.7. Освобождение GIL в расширениях на C....608

15.8. Объединение потоков из C и Python....608

15.9. Оборачивание кода на C в Swig....609

15.10. Оборачивание существующего кода на C в Cython....614

15.11. Использование Cython для высокопроизводительных операций над массивами....621

15.12. Превращение указателя на функцию в вызываемый объект....625

15.13. Передача строк с нулевым символом библиотекам на C....627

15.14. Передача строк Unicode в библиотеки на C....631

15.15. Преобразование строк C в Python....635

15.16. Работа со строками C в сомнительной кодировке....636

15.17. Передача имен файлов в расширения на С....639

15.18. Передача открытых файлов в расширения на С....640

15.19. Чтение файлоподобных объектов из C....642

15.20. Потребление итерируемого объекта из С....644

15.21. Диагностика ошибок сегментации....645

Для дальнейшего изучения....647

Веб-сайты....647

Книги, посвященные языку Python....648

Книги для углубленного изучения Python....648

Если вам нужна помощь в разработке программ на языке Python 3 или вы планируете заняться обновлением старого кода на языке Python 2, эта книга - ваш счастливый билет. Она наполнена практическими примерами, разработанными и протестированными в среде Python 3.3, поэтому станет уникальным подспорьем для опытных программистов, желающих сконцентрироваться на современных инструментах и идиомах. .В книге приведены полноценные рецепты, охватывающие свыше 10 основных тем Python, а также задачи, имеющие широкий спектр областей применения. Каждый рецепт содержит примеры кода, которые вы можете использовать в своих проектах, а также включает обсуждение принципов работы данного решения.


Похожее:

Список отзывов:

Нет отзывов к книге.