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

  • IV. Функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38315. Основы функций

  • 16. Области видимости и аргументы

  • 17. Расширенные возможности функций

  • 19. Основы программирования модулей

  • 21. Дополнительные возможности модулей

  • VI. Классы и ООП . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55922. ООП: общая картина

  • 24. Подробнее о программировании классов

  • 25. Шаблоны проектирования с классами

  • 26. Дополнительные возможности классов

  • 29. Использование исключений

  • VIII. Приложения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 775A. Установка и настройка

  • Изменения в языке Python

  • Изменения в обучении языку Python

  • Математический анализ. 3е издание


    Скачать 4.86 Mb.
    Название3е издание
    АнкорМатематический анализ
    Дата04.02.2022
    Размер4.86 Mb.
    Формат файлаpdf
    Имя файлаpython_01.pdf
    ТипДокументы
    #351981
    страница2 из 98
    1   2   3   4   5   6   7   8   9   ...   98
    14. Документация
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
    Источники документации в языке Python
    . . . . . . . . . . . . . . . . . . . . . . . 364
    Типичные ошибки программирования
    . . . . . . . . . . . . . . . . . . . . . . . . . . 377
    В заключение
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
    Закрепление пройденного
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
    IV. Функции
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
    15. Основы функций
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
    Зачем нужны функции?
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
    Создание функций
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
    Первый пример: определения и вызовы
    . . . . . . . . . . . . . . . . . . . . . . . . . 390
    Второй пример: пересечение последовательностей
    . . . . . . . . . . . . . . . . 393
    В заключение
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
    Закрепление пройденного
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
    16. Области видимости и аргументы
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
    Правила видимости
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
    Инструкция global
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
    Области видимости и вложенные функции
    . . . . . . . . . . . . . . . . . . . . . . 410
    Передача аргументов
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
    Специальные режимы сопоставления аргументов
    . . . . . . . . . . . . . . . . 423
    В заключение
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
    Закрепление пройденного
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
    17. Расширенные возможности функций
    . . . . . . . . . . . . . . . . . . . . . . . . 440
    Анонимные функции: lambda
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
    Применение функций к аргументам
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
    Отображение функций на последовательности: map
    . . . . . . . . . . . . . . 449
    Средства функционального программирования: filter и reduce
    . . . . . 451
    Еще раз о генераторах списков: отображения
    . . . . . . . . . . . . . . . . . . . . 452
    Еще раз об итераторах: генераторы
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
    Хронометраж итерационных альтернатив
    . . . . . . . . . . . . . . . . . . . . . . . 466
    Концепции проектирования функций
    . . . . . . . . . . . . . . . . . . . . . . . . . . 469
    Типичные ошибки при работе с функциями
    . . . . . . . . . . . . . . . . . . . . . 472
    В заключение
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
    Закрепление пройденного
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477

    Оглавление
    11
    V. Модули
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
    18. Модули: общая картина
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
    Зачем нужны модули?
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
    Архитектура программы на языке Python
    . . . . . . . . . . . . . . . . . . . . . . . 487
    Как работает импорт
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490
    В заключение
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498
    Закрепление пройденного
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
    19. Основы программирования модулей
    . . . . . . . . . . . . . . . . . . . . . . . . 501
    Создание модуля
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
    Использование модулей
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502
    Пространства имен модулей
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509
    Повторная загрузка модулей
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
    В заключение
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518
    Закрепление пройденного
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519
    20. Пакеты модулей
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521
    Основы операции импортирования пакетов
    . . . . . . . . . . . . . . . . . . . . . . 521
    Пример импортирования пакета
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525
    Зачем используется операция импортирования пакетов?
    . . . . . . . . . 527
    В заключение
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531
    Закрепление пройденного
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532
    21. Дополнительные возможности модулей
    . . . . . . . . . . . . . . . . . . . . . 533
    Сокрытие данных в модулях
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533
    Включение будущих возможностей языка
    . . . . . . . . . . . . . . . . . . . . . . . 534
    Смешанные режимы использования: __name__ и __main__
    . . . . . . . 535
    Изменение пути поиска модулей
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538
    Расширение import as
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539
    Синтаксис относительного импорта
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539
    Концепции проектирования модулей
    . . . . . . . . . . . . . . . . . . . . . . . . . . . 543
    Типичные проблемы при работе с модулями
    . . . . . . . . . . . . . . . . . . . . . 547
    В заключение
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555
    Закрепление пройденного
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555
    VI. Классы и ООП
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559
    22. ООП: общая картина
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561
    Зачем нужны классы?
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562
    ООП с высоты 30 000 футов
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564
    В заключение
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575
    Закрепление пройденного
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575

    12
    Оглавление
    23. Основы программирования классов
    . . . . . . . . . . . . . . . . . . . . . . . . . 577
    Классы генерируют множество экземпляров объектов
    . . . . . . . . . . . . 577
    Классы адаптируются посредством наследования
    . . . . . . . . . . . . . . . . 582
    Классы могут переопределять операторы языка Python
    . . . . . . . . . . . 586
    Самый простой в мире класс на языке Python
    . . . . . . . . . . . . . . . . . . . . 589
    В заключение
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592
    Закрепление пройденного
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592
    24. Подробнее о программировании классов
    . . . . . . . . . . . . . . . . . . . . 595
    Инструкция class
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595
    Методы
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599
    Наследование
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602
    Перегрузка операторов
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 606
    Пространства имен: окончание истории
    . . . . . . . . . . . . . . . . . . . . . . . . . 624
    Более реалистичный пример
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 631
    В заключение
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635
    Закрепление пройденного
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635
    25. Шаблоны проектирования с классами
    . . . . . . . . . . . . . . . . . . . . . . . 637
    Python и ООП
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 637
    Классы как записи
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639
    ООП и наследование: взаимосвязи типа «является»
    . . . . . . . . . . . . . . 641
    ООП и композиция: взаимосвязи типа «имеет»
    . . . . . . . . . . . . . . . . . . 643
    ООП и делегирование
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 648
    Множественное наследование
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 649
    Классы – это объекты: фабрики универсальных объектов
    . . . . . . . . . 653
    Методы – это объекты: связанные и несвязанные методы
    . . . . . . . . . . 655
    Еще раз о строках документирования
    . . . . . . . . . . . . . . . . . . . . . . . . . . . 657
    Классы и модули
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659
    В заключение
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659
    Закрепление пройденного
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 660
    26. Дополнительные возможности классов
    . . . . . . . . . . . . . . . . . . . . . . 661
    Расширение встроенных типов
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 661
    Псевдочастные атрибуты класса
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 665
    Классы нового стиля
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 668
    Статические методы и методы класса
    . . . . . . . . . . . . . . . . . . . . . . . . . . . 677
    Декораторы функций
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681
    Типичные проблемы при работе с классами
    . . . . . . . . . . . . . . . . . . . . . . 684
    В заключение
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 690
    Закрепление пройденного
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 690

    Оглавление
    13
    VII. Исключения и инструменты
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 699
    27. Основы исключений
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 701
    Зачем нужны исключения?
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 702
    Обработка исключений: краткий обзор
    . . . . . . . . . . . . . . . . . . . . . . . . . . 704
    Инструкция try/except/else
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 709
    Инструкция try/finally
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 716
    Объединенная инструкция try/except/finally
    . . . . . . . . . . . . . . . . . . . . 718
    Инструкция raise
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 722
    Инструкция assert
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725
    Контекстные менеджеры with/as
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726
    В заключение
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731
    Закрепление пройденного
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 732
    28. Объекты исключений
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 733
    Исключения на основе строк
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 734
    Исключения на основе классов
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735
    Общие формы инструкции raise
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 747
    В заключение
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 748
    Закрепление пройденного
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 749
    29. Использование исключений
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 751
    Вложенные обработчики исключений
    . . . . . . . . . . . . . . . . . . . . . . . . . . 751
    Идиомы исключений
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 756
    Советы по применению исключений
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . 760
    Типичные проблемы при работе с исключениями
    . . . . . . . . . . . . . . . . . 764
    Заключение по основам языка
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 766
    В заключение
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 771
    Закрепление пройденного
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 772
    VIII. Приложения
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 775
    A. Установка и настройка
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 777
    B. Решения упражнений
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 786
    Алфавитный указатель
    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 824

    Предисловие
    Эта книга представляет собой введение в язык программирования Py
    thon. Python – это популярный язык программирования, используе
    мый как для разработки самостоятельных программ, так и для созда
    ния прикладных сценариев в самых разных областях применения. Это мощный, переносимый, простой в использовании и свободно распро
    страняемый язык программирования.
    Цель этой книги – позволить вам быстро овладеть основными принци
    пами базового языка Python независимо от уровня вашей подготовки.
    Прочитав эту книгу, вы получите объем знаний, достаточный для ис
    пользования Python в самых разных областях.
    О третьем издании
    За четыре года, прошедшие с момента выхода второго издания книги в 2003 году, произошли существенные изменения как в самом языке
    Python, так и в темах, которые я представляю на своих курсах обучения языку Python. Я постарался оставить как можно больше из предыдуще
    го издания, кроме того, это новое издание отражает изменения послед
    него времени, появившиеся в самом языке Python и в обучении языку
    Python. Помимо этого была несколько изменена структура книги.
    Изменения в языке Python
    Если говорить о версии языка, это издание описывает Python 2.5 и от
    ражает все изменения, появившиеся в языке с момента выхода второго издания книги. (Во втором издании описывался язык Python 2.2 и не
    которые нововведения версии 2.3.) Кроме того, в этом издании обсуж
    даются изменения, которые ожидаются в версии Python 3.0. Ниже приводится список основных тем, касающихся языка программирова
    ния, которые вы найдете в этом издании:

    Новая условная конструкция B if A else C (глава 12).

    Оператор контекста with/as (глава 27).

    Унификация конструкции try/except/finally (глава 27).

    Синтаксис относительного импорта (глава 21).

    Выражениягенераторы (глава 17).

    Новые особенности функцийгенераторов (глава 17).

    16
    Предисловие

    Функциидекораторы (глава 26).

    Объектный тип множества (глава 5).

    Новые встроенные функции: sorted, sum, any, all, enumerate (главы 4
    и 13).

    Объектный тип десятичных чисел с фиксированной точностью представления (глава 5).

    Расширенные сведения о файлах, списках, итераторах и многом другом (главы 13 и 17).

    Новые инструменты разработки: Eclipse, dustutils, unittest и doctest,
    расширения IDLE, Shedskin и т. д. (главы 3 и 29).
    Менее значительные изменения в языке (такие, как широко исполь
    зуемые значения True и False, новая функция sys.exc_info, которая воз
    вращает подробную информацию об исключении, и обработка строко
    вых исключений, методы для работы со строками и встроенные функ
    ции apply и reduce) обсуждаются на протяжении всей книги. Кроме того,
    здесь приводится расширенное описание некоторых новых особенно
    стей, впервые появившихся в предыдущем издании, включая третье измерение при работе со срезами и передачу произвольного числа ар
    гументов функции, включая функцию apply.
    Изменения в обучении языку Python
    Кроме уже перечисленных изменений в самом языке это издание кни
    ги дополнено новыми темами и примерами, наработанными мною при преподавании на курсах обучения языку Python в последние годы. На
    пример, здесь вы найдете:

    Новую главу о встроенных типах (глава 4).

    Новую главу о синтаксических конструкциях (глава 10).
    1   2   3   4   5   6   7   8   9   ...   98


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