Программирование на Python в примерах и задачах
Год издания: 2021
Автор: Васильев А. Н.
Издательство: Эксмо
ISBN: 978-5-04-103199-2
Серия: Российский компьютерный бестселлер
Язык: Русский
Формат: PDF
Качество: Издательский макет или текст (eBook)
Количество страниц: 619
Описание: Сегодня существует много разных языков программирования. Некоторые из них популярны, а некоторые — не очень. Обычно популярность языка определяют по количеству программистов, которые используют его в своей работе на постоянной основе, или по запросам работодателей, которые ищут сотрудников-программистов. Долгие годы традиционно популярными являются языки программирования Java, C++, C#, JavaScript и PHP. В последнее время в этой великолепной компании все чаще упоминается язык программирования Python. Даже больше — по некоторым опросам язык Python уже занимает лидирующие позиции. Именно этому языку посвящена книга.
Оглавление
Вступление. Книга о языке программирования Python . . . . . . . 6
Язык Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Особенности книги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Программное обеспечение . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Об авторе . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Обратная связь . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Благодарности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Глава 1. Знакомство с Python . . . . . . . . . . . . . . . . . . . . . . . . 16
Первая программа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Использование различных сред разработки . . . . . . . . . . . . . 22
Среда разработки PyCharm . . . . . . . . . . . . . . . . . . . . . . . . 23
Среда разработки Wing . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Среда разработки PyScripter . . . . . . . . . . . . . . . . . . . . . . . . 33
Знакомство с переменными . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Ввод значения в программу . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Функция eval() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Знакомство со списками . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Знакомство с условным оператором . . . . . . . . . . . . . . . . . . . . . 56
Знакомство с оператором цикла . . . . . . . . . . . . . . . . . . . . . . . 59
Знакомство с функциями . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Задания для самостоятельной работы . . . . . . . . . . . . . . . . . . . 69
Глава 2. Основные операции . . . . . . . . . . . . . . . . . . . . . . . . . 71
Оператор цикла while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Оператор цикла for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Условный оператор if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Тернарный оператор . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Обработка исключительных ситуаций . . . . . . . . . . . . . . . . . . 108
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Задания для самостоятельной работы . . . . . . . . . . . . . . . . . . 122
Глава 3. Списки и кортежи . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Знакомство с кортежами . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Основные операции со списками и кортежами . . . . . . . . . . . . . 130
Создание выборки на основе списков и кортежей . . . . . . . . . . . 139
Вложенные списки и кортежи . . . . . . . . . . . . . . . . . . . . . . . 147
Копирование списков и кортежей . . . . . . . . . . . . . . . . . . . . . 153
Функции и методы для работы со списками . . . . . . . . . . . . . . . 158
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Задания для самостоятельной работы . . . . . . . . . . . . . . . . . . 169
Глава 4. Множества и словари . . . . . . . . . . . . . . . . . . . . . . . . 171
Знакомство с множествами . . . . . . . . . . . . . . . . . . . . . . . . . 171
Операции с множествами . . . . . . . . . . . . . . . . . . . . . . . . . . 176
Примеры использования множеств . . . . . . . . . . . . . . . . . . . . 186
Знакомство со словарями . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Операции со словарями . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Задания для самостоятельной работы . . . . . . . . . . . . . . . . . . 209
Глава 5. Работа с текстом . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Текстовые литералы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Основные операции с текстом . . . . . . . . . . . . . . . . . . . . . . . 226
Методы для работы с текстом . . . . . . . . . . . . . . . . . . . . . . . . 230
Примеры работы с текстом . . . . . . . . . . . . . . . . . . . . . . . . . 242
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Задания для самостоятельной работы . . . . . . . . . . . . . . . . . . 248
Глава 6. Функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
Объявление и вызов функции . . . . . . . . . . . . . . . . . . . . . . . 250
Именованные аргументы функции . . . . . . . . . . . . . . . . . . . . 261
Механизм передачи аргументов . . . . . . . . . . . . . . . . . . . . . . 262
Значения аргументов по умолчанию . . . . . . . . . . . . . . . . . . . 266
Функции с произвольным количеством аргументов . . . . . . . . . 270
Локальные и глобальные переменные . . . . . . . . . . . . . . . . . . 274
Вложенные функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
Лямбда-функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
Функция как аргумент и результат . . . . . . . . . . . . . . . . . . . . 282
Рекурсия . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
Декораторы функций . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
Функции-генераторы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
Аннотации и документирование в функциях . . . . . . . . . . . . . . 297
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
Задания для самостоятельной работы . . . . . . . . . . . . . . . . . . 303
Глава 7. Файлы и данные . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Числовые данные . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Логические значения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
Дата и время . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
Работа с файлами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
Задания для самостоятельной работы . . . . . . . . . . . . . . . . . . 345
Глава 8. Классы и объекты . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
Концепция классов и объектов . . . . . . . . . . . . . . . . . . . . . . . 347
Описание классов и создание объектов . . . . . . . . . . . . . . . . . . 350
Конструкторы и деструкторы . . . . . . . . . . . . . . . . . . . . . . . . 358
Объект реализации класса . . . . . . . . . . . . . . . . . . . . . . . . . . 361
Операции с атрибутами классов и объектов . . . . . . . . . . . . . . . 372
Копирование объектов . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
Документирование и декораторы . . . . . . . . . . . . . . . . . . . . . 382
Использование классов и объектов . . . . . . . . . . . . . . . . . . . . 388
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
Задания для самостоятельной работы . . . . . . . . . . . . . . . . . . 402
Глава 9. Наследование и специальные методы . . . . . . . . . . . . 405
Знакомство с наследованием . . . . . . . . . . . . . . . . . . . . . . . . 405
Множественное наследование . . . . . . . . . . . . . . . . . . . . . . . 413
Переопределение методов при наследовании . . . . . . . . . . . . . . 417
Приведение типов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
Перегрузка операторов . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
Доступ к атрибутам . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448
Индексирование объектов . . . . . . . . . . . . . . . . . . . . . . . . . . 459
Вызов объекта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
Итераторы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
Задания для самостоятельной работы . . . . . . . . . . . . . . . . . . 475
Глава 10. Обработка исключений и потоки . . . . . . . . . . . . . . . 477
Принципы обработки исключений . . . . . . . . . . . . . . . . . . . . 477
Обработка исключений разных типов . . . . . . . . . . . . . . . . . . 483
Использование объекта исключения . . . . . . . . . . . . . . . . . . . 484
Вложенные блоки для обработки исключений . . . . . . . . . . . . . 487
Искусственное генерирование исключений . . . . . . . . . . . . . . . 490
Создание классов исключений . . . . . . . . . . . . . . . . . . . . . . . 494
Использование исключений . . . . . . . . . . . . . . . . . . . . . . . . . 496
Знакомство с потоками . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506
Взаимодействие потоков . . . . . . . . . . . . . . . . . . . . . . . . . . . 517
Примеры использования потоков . . . . . . . . . . . . . . . . . . . . . 527
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534
Задания для самостоятельной работы . . . . . . . . . . . . . . . . . . 536
Глава 11. Программы с графическим интерфейсом . . . . . . . . . 538
Создание простого окна . . . . . . . . . . . . . . . . . . . . . . . . . . . 538
Окно с меткой и кнопкой . . . . . . . . . . . . . . . . . . . . . . . . . . . 540
Использование текстового поля . . . . . . . . . . . . . . . . . . . . . . 543
Раскрывающийся список . . . . . . . . . . . . . . . . . . . . . . . . . . . 549
Опции, переключатели и другие компоненты . . . . . . . . . . . . . 557
Использование меню . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576
Работа с графикой . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596
Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611
Задания для самостоятельной работы . . . . . . . . . . . . . . . . . . 612
Заключение. Python и программирование . . . . . . . . . . . . . . . . 614