Изучаем программирование на Python

Обучающий практикум из серии: «Head First».

Бэрри П. «Изучаем программирование на Python» Эксмо, 2017 год, 624 стр., Head First, 2 издание, ISBN: 978-5-699-98595-1; (24,5 мб. pdf+примеры 39 кб.)

Это второе издание книги «Изучаем программирование на Python» вышедшее в серии Head First и знакомой многим программистам и разработчикам. Автор учебного пособия проведет вас начиная от азов Python (IDLE, стандартная библиотека, работа с данными, функции, декораторы, генераторы, обработка исключений и мн. другое) до создания и развертывания собственного веб-приложения с использованием DB-API, а также фреймворка Flask.

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

Оглавление книги

Содержание.

1. Основы. Начнем поскорее 37
Назначение окон IDLE 40
Выполнение кода, одна инструкция за раз 44
Функции + модули = стандартная библиотека 45
Встроенные структуры данных 49
Вызов метода возвращает результат 50
Принятие решения о запуске блока кода 51
Какие варианты может иметь «if»? 53
Блоки кода могут содержать встроенные блоки 54
Возвращение в командную оболочку Python 58
Экспериментируем в оболочке 59
Перебор последовательности объектов 60
Повторяем определенное количество раз 61
Применим решение задачи № 1 к нашему коду 62
Устраиваем паузу выполнения 64
Генерация случайных чисел на Python 66
Создание серьезного бизнес-приложения 74
Отступы вас бесят? 76
Попросим интерпретатор помочь с функцией 77
Эксперименты с диапазонами 78
Код из главы 1 82

2. Списки. Работа с упорядоченными данными 83
Числа, строки… и объекты 84
Встречайте: четыре встроенные структуры данных 86
Словарь: неупорядоченная структура данных 88
Множество: структура данных, не позволяющая дублировать объекты 89
Создание литеральных списков 91
Если работаете с фрагментом кода большим, чем пара строк, используйте редактор 93
Заполнение списка во время выполнения 94
Проверка принадлежности с помощью in 95
Удаление объектов из списка 98
Добавление элементов в список 100
Вставка элементов в список 101
Как скопировать структуру данных 109
Списки расширяют нотацию с квадратными скобками 111
Со списками можно использовать диапазоны 112
Начало и конец диапазона в списках 114
Работаем со срезами в списке 116
Использование цикла «for» со списками в Python 122
Срезы в деталях 124
Когда не нужно использовать списки 127
Код из главы 2 128

3. Структурированные данные. Работа со структурированными данными 131
Словари хранят пары ключ/значение 132
Как определяются словари в коде 134
Порядок добавления НЕ поддерживается 135
Выбор значений с помощью квадратных скобок 136
Работа со словарями во время выполнения программы 137
Изменение счетчика 141
Итерации по записям в словарях 143
Итерации по ключам и значениям 144
Итерации по словарям с использованием items 146
Насколько динамичны словари? 150
Предотвращение ошибок KeyError во время выполнения 152
Проверка вхождения с помощью in 153
Не забывайте инициализировать ключ перед использованием 154
Замена in на not in 155
Работа с методом setdefault 156
Создаем множества эффективно 160
Использование методов множеств 161
Сделаем пример с кортежами 168
Комбинирование встроенных структур данных 171
Доступ к данным, хранящимся в сложных структурах 177
Код из главы 3 179

4. Повторное использование. Функции и модули 181
Повторное использование кода с помощью функций 182
Представляем функции 183
Вызываем функции 186
Функции могут принимать аргументы 190
Возврат одного значения 194
Возврат более одного значения 195
Вспомним встроенные структуры данных 197
Создание универсальной и полезной функции 201
Создание другой функции 202
Задание значений по умолчанию для аргументов 206
Позиционные и именованные аргументы 207
Повторим, что мы узнали о функциях 208
Запуск Python из командной строки 211
Создание необходимых файлов установки 215
Создание файла дистрибутива 216
Установка пакетов при помощи «pip» 218
Демонстрация семантики вызова по значению 221
Демонстрация семантики вызова по ссылке 222
Установка инструментов разработчика для тестирования 226
Соответствует ли наш код рекомендациям в PEP 8? 227
Разбираемся с сообщениями об ошибках 228
Код из главы 4 230

5. Построение веб-приложения. Возвращение в реальный мир 231
Python: что вы уже знаете 232
Чего мы хотим от нашего веб-приложения? 236
Давайте установим Flask 238
Как работает Flask? 239
Первый запуск веб-приложения Flask 240
Создание объекта веб-приложения Flask 242
Декорирование функции URL 243
Запуск функций веб-приложения 244
Размещение функциональности в Веб 245
Построение HTML-формы 249
Шаблоны связаны с веб-страничками 252
Отображение шаблонов из Flask 253
Отображение HTML-формы веб-приложения 254
Подготовка к запуску кода с шаблонами 255
Коды состояния HTTP 258
Обработка отправленных данных 259
Оптимизация цикла редактирование/остановка/запуск/проверка 260
Доступ к данным HTML-формы с помощью Flask 262
Использование данных запроса в веб-приложении 263
Выводим результат в виде HTML 265
Подготовка веб-приложения к развертыванию в облаке 274
Код из главы 5 277

6. Хранение и обработка данных. Где хранить данные 279
Работа с данными из веб-приложения 280
Python позволяет открывать, обрабатывать и закрывать 281
Чтение данных из существующего файла 282
Лучше «with», чем открыть, обработать, закрыть 284
Просмотр журнала в веб-приложении 290
Исследуем исходный код страницы 292
Пришло время экранировать (ваши данные) 293
Просмотр всего журнала в веб-приложении 294
Журналирование отдельных атрибутов веб-запроса 297
Журналирование данных в одну строку с разделителями 298
Вывод данных в читаемом формате 301
Генерируем читаемый вывод с помощью HTML 310
Встраиваем логику отображения в шаблон 311
Создание читаемого вывода с помощью Jinjia2 312
Текущее состояние кода нашего веб-приложения 314
Задаем вопросы о данных 315
Код из главы 6 316

7. Использование базы данных. Используем DB-API в Python 317
Включаем поддержку баз данных в веб-приложении 318
Задача 1. Установка сервера MySQL 319
Введение в Python DB-API 320
Задача 2. Установка драйвера базы данных MySQL для Python 321
Установка MySQL–Connector/Python 322
Задача 3. Создание базы данных и таблиц для веб-приложения 323
Выбираем структуру для журналируемых данных 324
Убедимся, что таблица готова к использованию 325
Задача 4. Программирование операций с базой данных и таблицами 332
Хранение данных — только половина дела 336
Как организовать код для работы с базой данных? 337
Подумайте, что вы собираетесь использовать повторно 338
А что с тем импортом? 339
Вы видели этот шаблон раньше 341
Неприятность не такая уж неприятная 342
Код из главы 7 343

8. Немного о классах. Абстракция поведения и состояния 345
Подключаемся к инструкции «with» 346
Объектно-ориентированный пример 347
Создание объектов из классов 348
Объекты обладают общим поведением, но не состоянием 349
Расширяем возможности CountFromBy 350
Вызов метода: подробности 352
Добавление метода в класс 354
Важность «self» 356
Область видимости 357
Добавляйте к именам атрибутов приставку «self» 358
Инициализация атрибута перед использованием 359
Инициализация атрибутов в «init» с двойными подчеркиваниями 360
Инициализация атрибутов в «__init__» 361
Представление CountFromBy 364
Определение представления CountFromBy 365
Определение целесообразных умолчаний для CountFromBy 366
Классы: что мы знаем 368
Код из главы 8 369

9. Протокол управления контекстом. Подключение к инструкции with 371
Выбираем лучший способ повторного использования кода для работы с БД 372
Управление контекстом с помощью методов 374
Вы уже видели, как действует диспетчер контекста 375
Создание нового класса диспетчера контекста 376
Инициализация класса параметрами соединения с базой данных 377
Выполняем настройку в «__enter__» 379
Выполнение завершающего кода с использованием «__exit__» 381
Повторное обсуждение кода веб-приложения 384
Вспомним функцию «log_request» 386
Изменение функции «log_request» 387
Вспомним функцию «view_the_log» 388
Изменился не только этот код 389
Изменение функции «view_the_log» 390
Ответы на вопросы о данных 395
Код из главы 9 396

10. Декораторы функций. Обертывание функций 399
Веб-сервер (не ваш компьютер) запускает ваш код 402
Поддержка сеансов в Flask позволяет хранить состояние 404
Поиск по словарю позволяет получить состояние 405
Организация входа в систему с помощью сеансов 410
Выход из системы и проверка состояния 413
Передаем функцию в функцию 422
Вызываем переданную функцию 423
Принимаем список аргументов 426
Обработка списка аргументов 427
Принимаем словарь аргументов 428
Обработка словаря аргументов 429
Принимаем любое количество аргументов любого типа 430
Создание декоратора функции 433
Последний шаг: работа с аргументами 437
Использование декоратора 440
Назад к ограничению доступа к /viewlog 444
Код из главы 10 446

11. Обработка исключений. Что делать, когда что-то идет не так 449
Базы данных не всегда доступны 454
Веб-атаки — настоящая боль 455
Ввод-вывод бывает медленным (иногда) 456
Вызовы функций могут оканчиваться неудачей 457
Всегда используйте try для кода с высоким риском ошибок 459
Одна инструкция try, но несколько except 462
Обработчик любых исключений 464
Узнаем об исключениях из «sys» 466
Универсальный обработчик, повторение 467
Назад к нашему веб-приложению 469
Тихая обработка исключений 470
Обработка других ошибок в базе данных 476
Избегайте тесных связей в коде 478
Модуль DBcm, еще раз 479
Создание собственного исключения 480
Что еще может пойти не так с «DBcm»? 484
Обработка SQLError отличается 487
Возбуждаем SQLError 489
Подведение итогов: добавление надежности 491
Как быть с ожиданием? Есть варианты… 492
Код из главы 11 493

11. 3/4. Немного о многопоточности. Обработка ожидания 497
Ожидание: что делать? 498
Как выполняются запросы к базе данных? 499
Инструкции INSERT и SELECT базы данных отличаются 500
Делаем несколько дел сразу 501
Не грустим: используем потоки 502
В первую очередь: не паниковать 506
Не грустим: Flask нам поможет 507
Надежно ли ваше веб-приложение сейчас? 510
Код из главы 11. 3/4 511

12. Продвинутые итерации. Безумные циклы 513
Чтение данных CSV в виде списков 515
Чтение CSV-данных в словарь 516
Удаление пробелов и разбивка исходных данных 518
Будьте внимательны при составлении цепочек из вызовов методов 519
Преобразование данных в нужный формат 520
Преобразование в словарь списков 521
Шаблон со списками 526
Преобразование шаблонного кода в генераторы 527
Подробнее о генераторах 528
Определение генератора словарей 530
Расширенные генераторы с фильтрами 531
Преодолеваем сложности, как это принято в Python 535
Генератор множеств в действии 541
А что с «генераторами кортежей»? 543
Круглые скобки вокруг кода == Генератор 544
Использование генератора списков для обработки URL 545
Использование выражения-генератора для обработки URL 546
Определим, что должна делать функция 548
Ощути силу функций-генераторов 549
Исследуем функцию-генератор 550
Последний вопрос 554
Код из главы 12 555
Пора прощаться… 556

A. Установка. Установка Python 557
Установка Python 3 в Windows 558
Проверим правильность установки Python 3 в Windows 559
Расширяем набор инструментов Python 3 в Windows 560
Установка Python 3 в Mac OS X (macOS) 561
Проверка и настройка Python 3 в Mac OS X 562
Установка Python 3 в Linux 563

B. РythonAnywhere. Развертывание веб-приложения 565
Шаг 0: Небольшая подготовка 566
Шаг 1: Регистрируемся в PythonAnywhere 567
Шаг 2: Выгружаем файлы в облако 568
Шаг 3: Извлекаем и устанавливаем код 569
Шаг 4: Создаем начальное веб-приложение, 1 из 2 570
Шаг 4: Создаем начальное веб-приложение, 2 из 2 571
Шаг 5: Настраиваем веб-приложение 572
Шаг 6: Запускаем облачное веб-приложение! 573

C. Топ-10 тем, которые мы не рассмотрели. Всегда есть чему поучиться 575
1. Что насчет Python 2? 576
2. Виртуальное программное окружение 577
3. Больше объектной ориентированности 578
4. Форматирование строк и тому подобное 579
5. Сортировка 580
6. Больше из стандартной библиотеки 581
7. Параллельное выполнение кода 582
8. Графический интерфейс с использованием Tkinter (и веселье с turtle) 583
9. Работа не завершена, пока не проверена 584
10. Отладка, отладка, отладка 585

D. Топ-10 проектов, которые мы не рассмотрели. Еще больше инструментов, библиотек и модулей 587
1. Альтернативы командной строке >>> 588
2. Альтернативы интегрированной среде IDLE 589
3. Jupyter Notebook: IDE на основе веб 590
4. Наука работы с данными 591
5. Технологии веб-разработки 592
6. Работа с данными в веб 593
7. Еще больше источников данных 594
8. Инструменты для программирования 595
9. Kivy: наш выбор в номинации «Лучший проект всех времен» 596
10. Альтернативные реализации 597

E. Присоединяйтесь. Сообщество Python 599
BDFL: Benevolent Dictator for Life — великодушный пожизненный диктатор 600
Толерантное сообщество: уважение к многообразию 601
Подкасты Python 602
Дзен Python 603
Дзен Python от Тима Петерса 604

Скачать техническую литературу бесплатно24,5 мб. pdf Скачать примеры бесплатно39 кб

Похожая литература