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

  • 2 Переводы 7 2.1Доступные переводыпереводы 73 Предисловие 16

  • 5 Установка 24

  • 6 Первые шаги 28

  • 8 Операторы и выражения 47

  • 9 Поток команд 55

  • 12 Структуры данных 85

  • 13 Решение задач 98

  • 14 Объектно-ориентированное программирование 108

  • 15 Ввод-вывод 121

  • 16 Исключения 126

  • 17 Стандартная библиотека 132

  • 18 Дополнительно 136

  • 19 Что дальше 143

  • 20 Приложение: FLOSS 149 20.1 Free/Libre and Open Source Software (FLOSS). . . . . . . . . . . . . . . . . . . 14921 Приложение: о книге 152

  • 22 Приложение: История версий 154 23 Приложение: Инструкция по переводу 158 v Введение

  • Книга на вашем родном языке 6 2 Переводы 7 1 Доступные переводы переводы 7 3 Предисловие 16


    Скачать 0.72 Mb.
    НазваниеКнига на вашем родном языке 6 2 Переводы 7 1 Доступные переводы переводы 7 3 Предисловие 16
    Дата16.04.2023
    Размер0.72 Mb.
    Формат файлаpdf
    Имя файлаAByteofPythonRussian-2.02.pdf
    ТипКнига
    #1065836
    страница1 из 14
      1   2   3   4   5   6   7   8   9   ...   14

    A Byte of Python (Russian)
    Версия 2.02
    Swaroop C H (Перевод: Владимир Смоляр)
    26 апреля 2020

    Оглавление
    1 Обложка
    1
    1.1
    «Укус Питона» – «A Byte of Python» по-русски
    1 1.2
    Кто читает «A Byte of Python»?
    1 1.3
    Лицензия
    5 1.4
    Читать
    5 1.5
    Купить книгу
    6 1.6
    Скачать
    6 1.7
    Книга на вашем родном языке
    6
    2 Переводы
    7
    2.1
    Доступные переводыпереводы
    7
    3 Предисловие
    16
    3.1
    Для кого эта книга
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.2
    Немного истории
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.3
    Состояние книги
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.4
    Официальная веб-страница
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.5
    К размышлению
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
    4 Введение
    19
    4.1
    Особенности Python
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.2
    Python 2 против 3
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4.3
    Что говорят программисты
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
    5 Установка
    24
    5.1
    Установка в GNU/Linux и BSD
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 5.2
    Установка в Windows
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 5.3
    Для пользователей Mac OS X
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 5.4
    Резюме
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
    i

    6 Первые шаги
    28
    6.1
    Использование командной строки интерпретатора
    . . . . . . . . . . . . . . . 28 6.2
    Выбор редактора
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 6.3
    Использование программных файлов
    . . . . . . . . . . . . . . . . . . . . . . . 30 6.4
    Получение помощи
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 6.5
    Резюме
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
    7 Основы
    36
    7.1
    Комментарии
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 7.2
    Литеральные константы
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 7.3
    Числа
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 7.4
    Строки
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 7.5
    Переменные
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 7.6
    Имена идентификаторов
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 7.7
    Типы данных
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 7.8
    Объекты
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 7.9
    Логические и физические строки
    . . . . . . . . . . . . . . . . . . . . . . . . . 43 7.10 Отступы
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 7.11 Резюме
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
    8 Операторы и выражения
    47
    8.1
    Операторы
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 8.2
    Порядок вычисления
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 8.3
    Изменение порядка вычисления
    . . . . . . . . . . . . . . . . . . . . . . . . . . 53 8.4
    Ассоциативность
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 8.5
    Выражения
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 8.6
    Резюме
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
    9 Поток команд
    55
    9.1
    Оператор if
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 9.2
    Оператор while
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 9.3
    Цикл for
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 9.4
    Оператор break
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 9.5
    Оператор continue
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 9.6
    Резюме
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
    10 Функции
    64
    10.1 Параметры функций
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 10.2 Локальные переменные
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 10.3 Зарезервированное слово «global»
    . . . . . . . . . . . . . . . . . . . . . . . . . 67 10.4 Зарезервированное слово «nonlocal»
    . . . . . . . . . . . . . . . . . . . . . . . 68 10.5 Значения аргументов по умолчанию
    . . . . . . . . . . . . . . . . . . . . . . . 69 10.6 Ключевые аргументы
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 10.7 Переменное число параметров
    . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 10.8 Только ключевые параметры
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
    ii

    10.9 Оператор «return»
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 10.10 Строки документации
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 10.11 Аннотации
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 10.12 Резюме
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
    11 Модули
    76
    11.1 Файлы байткода .pyc
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 11.2 Оператор from … import …
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 11.3 Имя модуля – __name__
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 11.4 Создание собственных модулей
    . . . . . . . . . . . . . . . . . . . . . . . . . . 80 11.5 Функция dir
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 11.6 Пакеты
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 11.7 Резюме
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
    12 Структуры данных
    85
    12.1 Список
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 12.2 Краткое введение в объекты и классы
    . . . . . . . . . . . . . . . . . . . . . . . 85 12.3 Кортеж
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 12.4 Словарь
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 12.5 Последовательности
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 12.6 Множество
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 12.7 Ссылки
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 12.8 Ещё о строках
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 12.9 Резюме
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
    13 Решение задач
    98
    13.1 Задача
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 13.2 Решение
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 13.3 Вторая версия
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 13.4 Третья версия
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 13.5 Четвёртая версия
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 13.6 Дополнительные усовершенствования
    . . . . . . . . . . . . . . . . . . . . . . 106 13.7 Процесс разработки программного обеспечения
    . . . . . . . . . . . . . . . . 107 13.8 Резюме
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
    14 Объектно-ориентированное программирование
    108
    14.1 self
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 14.2 Классы
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 14.3 Методы объектов
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 14.4 Метод
    __init__
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 14.5 Переменные класса и объекта
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 14.6 Наследование
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 14.7 Метаклассы
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 14.8 Резюме
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
    iii

    15 Ввод-вывод
    121
    15.1 Ввод от пользователя
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 15.2 Файлы
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 15.3 Pickle
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 15.4 Резюме
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
    16 Исключения
    126
    16.1 Ошибки
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 16.2 Исключения
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 16.3 Обработка исключений
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 16.4 Вызов исключения
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 16.5 Try .. Finally
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 16.6 Оператор with
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 16.7 Резюме
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
    17 Стандартная библиотека
    132
    17.1 Модуль sys
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 17.2 Модуль logging
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 17.3 Серия «Модуль недели»
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 17.4 Резюме
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
    18 Дополнительно
    136
    18.1 Передача кортежей
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 18.2 Специальные методы
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 18.3 Блоки в одно выражение
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 18.4 Lambda-формы
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 18.5 Генераторы списков
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 18.6 Передача кортежей и словарей в функции
    . . . . . . . . . . . . . . . . . . . . 139 18.7 exec и eval
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 18.8 Оператор assert
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 18.9 Функция repr
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 18.10 Управляющие последовательности
    . . . . . . . . . . . . . . . . . . . . . . . . 141 18.11 Необрабатываемые строки
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 18.12 Резюме
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
    19 Что дальше
    143
    19.1 Упражнения
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 19.2 Примеры программ
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 19.3 Вопросы и ответы
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 19.4 Советы и рекомендации
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 19.5 Учебники
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 19.6 Видео
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 19.7 Обсуждение
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 19.8 Новости
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 19.9 Установка библиотек
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
    iv

    19.10 Графические программы
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 19.11 Резюме по инструментам ГИП
    . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 19.12 Различные реализации
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 19.13 Функциональное программирование (для хорошо подготовленных чита- телей)
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 19.14 Резюме
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
    20 Приложение: FLOSS
    149
    20.1 Free/Libre and Open Source Software (FLOSS)
    . . . . . . . . . . . . . . . . . . . 149
    21 Приложение: о книге
    152
    21.1 Колофон
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 21.2 Об авторе
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
    22 Приложение: История версий
    154
    23 Приложение: Инструкция по переводу
    158
    v

    Введение
    Python – один из тех редких языков программирования, которые одновременно претен- дуют на звание простых и мощных. Вас приятно удивит то, как легко можно сосредото- читься на решении поставленной задачи, а не на синтаксисе и структуре языка, на кото- ром вы программируете.
    Официально Python представляют так:
    Python – это простой в освоении и мощный язык программирования. Он предоставляет эффективные высокоуровневые структуры данных, а также простой, но эффективный подход к объектно-ориентированному программи- рованию. Его элегантный синтаксис и динамическая типизация наряду с тем,
    что он является интерпретируемым, делают его идеальным языком для напи- сания сценариев и быстрой разработки приложений в различных областях и на большинстве платформ.
    В следующем разделе мы рассмотрим эти особенности более детально.
    История названия
    Гвидо ван Россум, создатель языка Python, назвал его так в честь телешоу на
    BBC под названием «Летающий цирк Монти Пайтона»
    1
    , а вовсе не потому,
    что он любит змей, убивающих животных обвиванием своего длинного тела вокруг них и задавливанием.
    4.1 Особенности Python
    4.1.1 Простой
    Python – простой и минималистичный язык. Чтение хорошей программы на Python очень напоминает чтение английского текста, хотя и достаточно строгого! Такая псевдо-кодовая природа Python является одной из его самых сильных сторон. Она позволяет вам сосре- доточиться на решении задачи, а не на самом языке.
    1
    «Monty Python’s Flying Circus» (прим.перев.)
    19

    A Byte of Python (Russian), Версия 2.02 4.1.2 Лёгкий в освоении
    Как вы увидите, на Python чрезвычайно легко начать программировать. Python обладает исключительно простым синтаксисом, как уже отмечалось выше.
    4.1.3 Свободный и открытый
    Python – это пример свободного и открытого программного обеспечения – FLOSS
    (Free/Libré and Open Source Software). Проще говоря, вы имеете право свободно распро- странять копии этого программного обеспечения, читать его исходные тексты, вносить изменения, а также использовать его части в своих программах. В основе свободного ПО
    лежит идея сообщества, которое делится своими знаниями. Это одна из причин, по ко- торым Python так хорош: он был создан и постоянно улучшается сообществом, которое просто хочет сделать его лучше.
    4.1.4 Язык высокого уровня
    При написании программы на Python вам никогда не придётся отвлекаться на такие низ- коуровневые детали, как управление памятью, используемой вашей программой, и т.п.
    4.1.5 Портируемый
    Благодаря своей открытой природе, Python был портирован на много платформ (т.е. из- менён таким образом, чтобы работать на них). Все ваши программы смогут запускаться на любой из этих платформ без каких-либо изменений, если только вы избегали исполь- зования системно-зависимых функций.
    Python можно использовать в GNU/Linux, Windows, FreeBSD, Macintosh, Solaris, OS/2,
    Amiga, AROS, AS/400, BeOS, OS/390, z/OS, Palm OS, QNX, VMS, Psion, Acorn RISC OS, VxWorks,
    PlayStation, Sharp Zaurus, Windows CE и даже на PocketPC!
    Вы можете даже использовать такую платформу, как
    Kivy для создания игр для iOS
    (iPhone, iPad) и Android.
    4.1.6 Интерпретируемый
    Это требует некоторого пояснения.
    Программа, написанная на компилируемом языке программирования, как например, C
    или C++, преобразуется из исходного языка (т.е. C или C++) в язык, понятный компью- теру (бинарный код, т.е. нули и единицы) при помощи компилятора с применением
    4.1. Особенности Python
    20

    A Byte of Python (Russian), Версия 2.02
    разнообразных флагов и параметров. Когда вы запускаете такую программу, компонов- щик/загрузчик копирует программу с диска в оперативную память и запускает её.
    Python же, напротив, не требует компиляции в бинарный код. Программа просто выполня-
    ется из исходного текста. Python сам преобразует этот исходный текст в некоторую про- межуточную форму, называемую байткодом, а затем переводит его на машинный язык и запускает. Всё это заметно облегчает использование Python, поскольку нет необходимо- сти заботиться о компиляции программы, подключении и загрузке нужных библиотек и т.д. Вместе с тем, это делает программы на Python намного более переносимыми, так как достаточно их просто скопировать на другой компьютер, и они работают!
    4.1.7 Объектно-ориентированный
    Python поддерживает как процедурно-ориентированное,
    так и
    объектно- ориентированное программирование. В процедурно-ориентированных языках программы строятся на основе процедур или функций, которые представляют собой просто-напросто многократно используемые фрагменты программы. В объектно-ориентированных язы- ках программирования программы строятся на основе объектов, объединяющих в себе данные и функционал. Python предоставляет простые, но мощные средства для ООП,
    особенно в сравнении с такими большими языками программирования, как C++ или
    Java.
    4.1.8 Расширяемый
    Если вам нужно, чтобы некоторая критическая часть программы работала очень быстро или вы вынуждены скрыть часть алгоритма, вы можете написать эту часть программы на C или C++, а затем вызывать её из программы на Python.
    4.1.9 Встраиваемый
    Python можно встраивать в программы на C/C++, чтобы предоставлять возможности на- писания сценариев их пользователям.
    4.1.10 Обширные библиотеки
    Стандартная библиотека Python просто огромна. Она может помочь в решении самых разнообразных задач, связанных с использованием регулярных выражений, генерирова- нием документации, проверкой блоков кода, распараллеливанием процессов, базами дан- ных, веб-браузерами, CGI, FTP, электронной почтой, XML, XML-RPC, HTML, WAV файла- ми, криптографией, GUI (графическим интерфейсом пользователя) и другими системно- зависимыми вещами. Помните, что всё это доступно абсолютно везде, где установлен
    Python. В этом заключается философия Python «Всё включено».
      1   2   3   4   5   6   7   8   9   ...   14


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