Главная страница
Навигация по странице:

  • ЧАСТЬ I ПЕРВЫЕ ШАГИ Глава 1 .

  • ЧАСТЬ II ПЕРЕДОВЫЕ ПРАКТИКИ, ИНСТРУМЕНТЫ И МЕТОДЫ Глава 3.

  • Глава 5.

  • Глава 8.

  • Глава 11.

  • Глава 13.

  • Глава 17.

  • Чистыйкод дляпродолжающи х


    Скачать 7.85 Mb.
    НазваниеЧистыйкод дляпродолжающи х
    Дата13.05.2023
    Размер7.85 Mb.
    Формат файлаpdf
    Имя файлаPython_Chisty_kod_dlya_prodolzhayuschikh_2022_El_Sveygart.pdf
    ТипДокументы
    #1127485
    страница1 из 40
      1   2   3   4   5   6   7   8   9   ...   40

    Э Л С В Е Й Г А Р Т
    2022
    PYTHON
    Ч И С Т Ы Й К О Д
    Д Л Я П Р О Д О Л Ж А Ю Щ И Х

    Э Л С В Е Й Г А Р Т
    2022
    PYTHON
    Ч И С Т Ы Й К О Д
    Д Л Я П Р О Д О Л Ж А Ю Щ И Х

    ББК
    32.973.2-018
    УДК
    004.41
    С24
    Свейгарт Эл
    С24 Python. Чистый код для продолжающих. — СПб.: Питер, 2022. — 384 с.: ил. —
    (Серия «Библиотека программиста»).
    ISBN 978-5-4461-1852-6
    Вы прошли обучающий курс программирования на Python или прочли несколько книг для начинающих.
    Что дальше? Как подняться над базовым уровнем, превратиться в крутого разработчика?
    «Python. Чистый код для продолжающих» — это не набор полезных советов и подсказок по написанию чистого кода. Вы узнаете о командной строке и других инструментах профессионального разработчика: сред- ствах форматирования кода, статических анализаторах и контроле версий. Вы научитесь настраивать среду разработки, давать имена переменным и функциям, делающие код удобочитаемым, грамотно комментировать и документировать ПО, оценивать быстродействие программ и сложность алгоритмов, познакомитесь с ООП.
    Такие навыки поднимут вашу ценность как программиста не только в Python, но и в любом другом языке.
    Ни одна книга не заменит реального опыта работы и не превратит вас из новичка в профессионала.
    Но «Чистый код для продолжающих» проведет вас чуть дальше по этому пути: вы научитесь создавать чистый, грамотный, читабельный, легко отлаживаемый код, который можно будет назвать истинно питоническим.
    16+
    (В соответствии с Федеральным законом от 29 декабря 2010 г. № 436-ФЗ.)
    ББК 32.973.2-018
    УДК 004.41
    Права на издание получены по соглашению с No Starch Press. Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав.
    Информация, содержащаяся в данной книге, получена из источников, рассматриваемых издательством как на- дежные. Тем не менее, имея в виду возможные человеческие или технические ошибки, издательство не может гарантировать абсолютную точность и полноту приводимых сведений и не несет ответственности за возможные ошибки, связанные с использованием книги. Издательство не несет ответственности за доступность материалов, ссылки на которые вы можете найти в этой книге. На момент подготовки книги к изданию все ссылки на интернет- ресурсы были действующими.
    ISBN 978-1593279660 англ.
    © 2021 by Al Sweigart. Beyond the Basic Stuff with Python: Best
    Practices for Writing Clean Code, ISBN 9781593279660,
    published by No Starch Press Inc. 245 8th Street, San Francisco,
    California United States 94103.
    Russian edition published under license by No Starch Press Inc.
    ISBN 978-5-4461-1852-6
    © Перевод на русский язык ООО «Прогресс книга», 2022
    © Издание на русском языке, оформление ООО «Прогресс книга», 2022
    © Серия «Библиотека программиста», 2022

    Краткое содержание
    Об авторе
    ........................................................18
    О техническом редакторе
    ...........................................18
    Благодарности
    ....................................................18
    Введение
    .........................................................19
    ЧАСТЬ I
    ПЕРВЫЕ ШАГИ
    Глава 1. Обработка ошибок и обращение за помощью
    ..................26
    Глава 2. Подготовка среды и командная строка
    .........................40
    ЧАСТЬ II
    ПЕРЕДОВЫЕ ПРАКТИКИ, ИНСТРУМЕНТЫ И МЕТОДЫ
    Глава 3. Форматирование кода при помощи Black
    ......................70
    Глава 4. Выбор понятных имен
    .......................................85
    Глава 5. Поиск запахов в коде
    .......................................95
    Глава 6. Написание питонического кода
    ..............................113
    Глава 7. Жаргон программистов
    ....................................135
    Глава 8. Часто встречающиеся ловушки Python
    ........................164
    Глава 9. Экзотические странности Python
    .............................185
    Глава 10.Написание эффективных функций
    ...........................194
    Глава 11.Комментарии, doc-строки и аннотации типов
    ..................216

    6
    Краткое содержание
    Глава 12. Git и организация программных проектов
    ....................235
    Глава 13.Измерение быстродействия и анализ сложности алгоритмов
    .....264
    Глава 14.Проекты для тренировки
    ..................................288
    ЧАСТЬ III
    ОБЪЕКТНО-ОРИЕНТИРОВАННЫЙ PYTHON
    Глава 15. Объектно-ориентированное программирование и классы
    .......316
    Глава 16. Объектно-ориентированное программирование и наследование
    .335
    Глава 17.ООП в Python: свойства и dunder-методы
    .....................358

    Оглавление
    Об авторе
    ......................................................18
    О техническом редакторе
    .......................................18
    Благодарности
    ..................................................18
    Введение
    .......................................................19
    Для кого написана эта книга и почему
    ...............................20
    О книге
    ........................................................20
    Часть I. Первые шаги
    ..........................................21
    Часть II. Передовые практики, инструменты и методы
    ................21
    Часть III. Объектно-ориентированный Python
    ......................22
    Путешествие в мир программирования
    ..............................23
    ЧАСТЬ I
    ПЕРВЫЕ ШАГИ
    Глава 1. Обработка ошибок и обращение за помощью
    ..................26
    Как понять сообщения об ошибках Python
    ............................26
    Анализ трассировки
    ..........................................27
    Поиск сообщений об ошибках
    ..................................30
    Предотвращение ошибок при помощи статического анализатора
    ........31
    Как обратиться за помощью по программированию
    ....................33
    Избегайте лишних разговоров, предоставляйте информацию заранее
    .34
    Формулируйте свой вопрос как вопрос
    ...........................34
    Задавайте вопросы на подходящем веб-сайте
    .....................34
    Включите краткое описание вопроса в заголовок
    ...................34
    Объясните, что должен делать ваш код
    ...........................35
    Включите полное сообщение об ошибке
    ..........................36
    Приведите полный код
    ........................................36
    Правильно отформатируйте свой код
    ............................36

    8
    Оглавление
    Сообщите, что вы уже пытались сделать
    ..........................37
    Опишите свою рабочую конфигурацию
    ..........................37
    Примеры вопросов
    ..............................................38
    Итоги
    .........................................................39
    Глава 2.Подготовка среды и командная строка
    .........................40
    Файловая система
    ...............................................40
    Пути в Python
    ................................................41
    Домашний каталог
    ...........................................42
    Текущий рабочий каталог
    ......................................43
    Абсолютные и относительные пути
    ...............................43
    Программы и процессы
    ...........................................44
    Командная строка
    ...............................................45
    Открытие окна терминала
    .....................................46
    Запуск программ из командной строки
    ...........................47
    Аргументы командной строки
    ...................................48
    Выполнение кода Python из командной строки с ключом -c
    ...........50
    Выполнение программ Python из командной строки
    .................50
    Запуск программы py.exe
    ......................................50
    Выполнение команд из программы Python
    .........................51
    Сокращение объема вводимого текста при помощи автозавершения
    ...51
    Просмотр истории команд
    .....................................52
    Часто используемые команды
    ..................................53
    Переменные среды и PATH
    ........................................60
    Просмотр переменных среды
    ...................................61
    Переменная среды PATH
    .......................................62
    Изменение переменной среды PATH в командной строке
    .............63
    Постоянное включение папок в PATH в Windows
    ...................63
    Постоянное включение папок в PATH в macOS и Linux
    ...............65
    Запуск программ Python без командной строки
    .......................65
    Запуск программ Python в Windows
    ..............................66
    Запуск программ Python в macOS
    ...............................67
    Запуск программ Python в Ubuntu Linux
    ...........................67
    Итоги
    .........................................................68

    Оглавление
    9
    ЧАСТЬ II
    ПЕРЕДОВЫЕ ПРАКТИКИ, ИНСТРУМЕНТЫ И МЕТОДЫ
    Глава 3. Форматирование кода при помощи Black
    ......................70
    Как потерять друзей и настроить против себя коллег
    ...................70
    Руководства по стилю и PEP 8
    ......................................71
    Горизонтальные отступы
    ..........................................72
    Использование пробелов для создания отступов
    ...................72
    Отступы в середине строки
    .....................................73
    Вертикальные отступы
    ............................................76
    Пример использования вертикальных отступов
    .....................77
    Рекомендации по использованию вертикальных отступов
    ............78
    Black: бескомпромиссная система форматирования кода
    ...............79
    Установка Black
    ..............................................80
    Запуск Black из командной строки
    ...............................80
    Отключение Black для отдельных частей кода
    ......................83
    Итоги
    .........................................................84
    Глава 4. Выбор понятных имен
    .......................................85
    Схемы регистра имен
    ............................................86
    Соглашения об именах PEP 8
    ......................................86
    Длина имен
    ....................................................87
    Выбирайте имена, пригодные для поиска
    ............................90
    Избегайте шуток, каламбуров и культурных отсылок
    ...................91
    Не заменяйте встроенные имена
    ...................................92
    Худшие из возможных имен
    .......................................93
    Итоги
    .........................................................93
    Глава 5. Поиск запахов в коде
    .......................................95
    Дублирование кода
    ..............................................95
    «Магические» числа
    .............................................97
    Закомментированный и мертвый код
    ...............................100
    Отладочный вывод
    ..............................................101
    Переменные с числовыми суффиксами
    .............................102
    Классы, которые должны быть функциями или модулями
    ...............103

    10
    Оглавление
    Списковые включения внутри списковых включений
    ...................104
    Пустые блоки except и плохие сообщения об ошибках
    .................106
    Мифы о запахах кода
    ...........................................107
    Миф: функции должны содержать только одну команду return в самом конце
    ..............................................108
    Миф: функции должны содержать не более одной команды try
    .......108
    Миф: аргументы-флаги нежелательны
    ...........................109
    Миф: глобальные переменные нежелательны
    .....................110
    Миф: комментарии излишни
    ...................................111
    Итоги
    ........................................................112
    Глава 6.Написание питонического кода
    ..............................113
    «Дзен Python»
    ..................................................113
    Как полюбить значимые отступы
    ...................................117
    Использование модуля timeit для оценки быстродействия
    ...............118
    Неправильное использование синтаксиса
    ...........................120
    Использование enumerate() вместо range()
    .......................120
    Использование команды with вместо open() и close()
    ...............121
    Использование is для сравнения с None вместо ==
    .................122
    Форматирование строк
    .........................................123
    Использование необработанных строк, если строка содержит много символов \ (обратный слэш)
    .............................123
    Форматирование с использованием F-строк
    ......................124
    Поверхностное копирование списков
    ..............................125
    Питонические способы использования словарей
    .....................126
    Использование get() и setdefault() со словарями
    ...................127
    Использование collections.defaultdict для значений по умолчанию
    .....128
    Использование словарей вместо команды switch
    ..................129
    Условные выражения: «некрасивый» тернарный оператор Python
    ........130
    Работа со значениями переменных
    ................................132
    Сцепление операторов присваивания и сравнения
    ................132
    Проверка того, что переменная содержит одно из нескольких значений
    133
    Итоги
    ........................................................133

    Оглавление
    11
    Глава 7. Жаргон программистов
    ....................................135
    Определения
    ..................................................135
    Язык Python и интерпретатор Python
    .............................136
    Сборка мусора
    .............................................137
    Литералы
    ..................................................137
    Ключевые слова
    ............................................138
    Объекты, значения, экземпляры и идентичность
    ...................139
    Элементы
    ..................................................143
    Изменяемость и неизменяемость
    ...............................143
    Индексы, ключи и хеш-коды
    ...................................146
    Контейнеры, последовательности, отображения и разновидности множеств
    ..................................................149
    Dunder-методы, или магические методы
    ..........................150
    Модули и пакеты
    ............................................150
    Вызываемые объекты и первоклассные объекты
    ...................151
    Частые ошибки при использовании терминов
    ........................152
    Команды и выражения
    ........................................152
    Блок, секция и тело
    ..........................................153
    Переменные и атрибуты
    ......................................154
    Функции и методы
    ...........................................155
    Итерируемые объекты и итераторы
    .............................155
    Синтаксические ошибки, ошибки времени выполнения и семантические ошибки
    ......................................157
    Параметры и аргументы
    ......................................159
    Явные и неявные преобразования типов
    .........................159
    Свойства и атрибуты
    .........................................159
    Байт-код и машинный код
    .....................................160
    Сценарии и программы, языки сценариев и языки программирования
    ..........................................161
    Библиотеки, фреймворки, SDK, ядра и API
    .......................161
    Итоги
    ........................................................162
    Дополнительные ресурсы
    ........................................163

    12
    Оглавление
    Глава 8.Часто встречающиеся ловушки Python
    ........................164
    Не добавляйте и не удаляйте элементы из списка в процессе перебора
    ...164
    Не копируйте изменяемые значения без copy.copy() и copy.deepcopy()
    ...171
    Не используйте изменяемые значения для аргументов по умолчанию
    .....174
    Не создавайте строки посредством конкатенации
    ....................176
    Не рассчитывайте, что sort() выполнит сортировку по алфавиту
    ..........178
    Не рассчитывайте на идеальную точность чисел с плавающей точкой
    .....179
    Не объединяйте операторы != в цепочку
    ............................182
    Не забудьте запятую в кортежах из одного элемента
    ..................183
    Итоги
    ........................................................183
    Глава 9.Экзотические странности Python
    .............................185
    Почему 256 — это 256, а 257 — не 257
    ............................185
    Интернирование строк
    ..........................................187
    Фиктивные операторы инкремента и декремента в языке Python
    .........188
    Все или ничего
    .................................................189
    Логические значения как целые числа
    ..............................190
    Сцепление разных видов операторов
    ..............................192
    Антигравитация в Python
    .........................................193
    Итоги
    ........................................................193
    Глава 10. Написание эффективных функций
    ...........................194
    Имена функций
    ................................................194
    Плюсы и минусы размера функций
    ................................195
    Параметры и аргументы функций
    ..................................198
    Аргументы по умолчанию
    .....................................198
    Использование * и ** для передачи аргументов функции
    ...........199
    Использование * при создании вариадических функций
    ............201
    Использование ** при создании вариадических функций
    ...........203
    Использование * и ** для создания функций-оберток
    ..............205
    Функциональное программирование
    ..............................206
    Побочные эффекты
    ..........................................206
    Функции высшего порядка
    ....................................209
    Лямбда-функции
    ............................................209

    Оглавление
    13
    Отображение и фильтрация со списковыми включениями
    ...........210
    Возвращаемые значения всегда должны иметь один тип данных
    .........212
    Выдача исключений и возвращение кодов ошибок
    ....................214
    Итоги
    ........................................................215
      1   2   3   4   5   6   7   8   9   ...   40


    написать администратору сайта