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

  • О программах в этой книге

  • В преддверии выхода Python 3.0

  • Использование программного кода примеров

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


    Скачать 4.86 Mb.
    Название3е издание
    АнкорМатематический анализ
    Дата04.02.2022
    Размер4.86 Mb.
    Формат файлаpdf
    Имя файлаpython_01.pdf
    ТипДокументы
    #351981
    страница4 из 98
    1   2   3   4   5   6   7   8   9   ...   98

    Обновления книги
    Книга продолжает улучшаться (и исправляются оши#%& опечатки).
    Обновления, дополнения и исправления к этой книге можно найти в сети Интернет на одном из следующих сайтов:
    http://www.oreilly.com/catalog/9780596513986/
    (вебстраница книги на сайте издательства O’Reilly)
    http://www.rmi.net/

    lutz
    (сайт автора книги)
    http://www.rmi.net/lutz/about+lp.html
    (вебстраница книги на сайте автора)
    Последний из этих трех URL указывает на вебстраницу, где я выкла
    дываю обновления, однако если эта ссылка окажется ошибочной, вам придется воспользоваться поисковой системой, чтобы восстановить ее.
    Если бы я был ясновидящим, я указал бы точную ссылку, но Интернет меняется быстрее, чем печатаются книги.
    О программах в этой книге
    Эта книга и все примеры программ в ней основаны на использовании
    Python 2.5. Я не стремлюсь предсказывать будущее, тем не менее, в хо
    де изучения мы будем обсуждать некоторые идеи, которые, как ожи
    дается, будут реализованы в версии 3.0.
    Однако, так как эта книга описывает базовые основы языка, можно быть уверенным, что большая часть из того, о чем здесь рассказывает
    ся, в следующих версиях Python изменится не очень сильно. Большая часть информации из этой книги применима и к более ранним версиям
    Python, кроме некоторых случаев; и, естественно, в случае использо
    вания расширений, которые появятся после выхода этой книги, ниче
    го гарантировать нельзя.

    24
    Предисловие
    Существует эмпирическое правило: лучшей версией Python является последняя его версия. Так как эта книга описывает основы языка,
    большинство сведений применимо к Jython – реализации Python на языке Java, а также к другим реализациям, описанным в главе 2.
    Исходные тексты примеров, а также ответы к заданиям можно полу
    чить на вебсайте книги по адресу http://www.oreilly.com/catalog/
    9780596513986/
    . Вас волнует вопрос, как запускать примеры? Он во всех подробностях обсуждается в главе 3, поэтому потерпите до этой главы.
    В преддверии выхода Python 3.0
    Первая альфаверсия Python 3.0 вышла как раз перед тем, как эта кни
    га была отправлена в печать, уже после того, как она была написана.
    Официально это издание книги основано на линейке версий Python 2.x
    (в частности, на версии 2.5), но она была дополнена многочисленными примечаниями об ожидаемых изменениях в версии Python 3.0.
    Официальная версия 3.0 выйдет как минимум через год после выхода этой книги и едва ли будет широко использоваться, по меньшей мере,
    еще два года. Однако, если вы приобрели эту книгу, когда версия 3.0
    уже получила широкое распространение, в этом разделе вы найдете краткое описание изменений в языке, которое поможет вам выпол
    нить переход на новую версию.
    За редкими исключениями, в основном язык Python 3.0 будет соответ
    ствовать описываемому в книге и влияние этих изменений на типич
    ный программный код будет весьма незначительным. То есть основы языка Python, о которых говорится в этой книге, не будут изменяться от версии к версии, и благодаря этому читатели могут с пользой для се
    бя изучать эти основы, прежде чем переходить к рассмотрению особен
    ностей, характерных для конкретных версий.
    Однако, чтобы помочь вам в будущем, ниже приводится список основ
    ных отличий Python 3.0. Здесь же приводятся ссылки на главы, где об
    суждаются или упоминаются эти изменения. Этот список упорядочен по возрастанию номеров глав. Некоторые из этих изменений могут быть реализованы в современной версии Python 2.5, а некоторые нет. По
    скольку в данный момент для большинства читателей изучать этот спи
    сок не имеет большого смысла, я рекомендую сначала прочитать эту кни
    гу, чтобы изучить основы языка Python, а затем вернуться сюда позднее и ознакомиться с грядущими изменениями. В версии Python 3.0:

    Удалена нынешняя встроенная функция execfile(). Вместо нее сле
    дует использовать функцию exec() (глава 3).

    Встроенная функция reload() возможно будет удалена. Альтерна
    тива пока не известна (главы 3 и 19).

    Преобразование в строковое представление с помощью обратных ка
    вычек `X` будет недоступно: используйте функцию repr(X) (глава 5).

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

    Избыточная операция проверки на неравенство X<>Y будет удалена:
    используйте операцию X!=Y (глава 5).

    Множества можно будет создавать с использованием синтаксиса литералов {1, 3, 2}, что эквивалентно используемой в настоящее время форме записи: set([1, 3, 2]) (глава 5).

    Множества могут определяться программно: {f(x) for x in S if P(x)},
    что эквивалентно используемой в настоящее время форме записи выражениягенератора: set(f(x) for x in S if P(x)) (глава 5).

    Операция деления X/Y всегда возвращает число с плавающей точ
    кой, даже если оба операнда являются целыми числами. Чтобы по
    лучить нынешнюю операцию деления с усечением дробной части,
    следует использовать X//Y (глава 5).

    Существует единственный целочисленный тип int, который обеспе
    чивает точность представления целых чисел, соответствующую ны
    нешнему типу long (глава 5).

    Восьмеричные и двоичные литералы: текущая форма записи вось
    меричных чисел 0666 будет вызывать ошибку: используйте вместо нее запись в форме 0o666, соответствующим образом будет изменен и результат, возвращаемый функцией oct(). Также запись в форме
    0b1010
    будет эквивалентна числу 10, а функция bin(10) будет воз
    вращать "0b1010" (глава 5).
    Строковый тип str поддерживает текст Unicode, а для представления строк с однобайтовыми символами создан новый тип bytes (например,
    для случаев, когда текст загружается из файлов в двоичном режиме).
    Тип bytes – это последовательность переменной длины малых целых чисел с интерфейсом, несколько отличающимся от str (глава 7).

    Появился новый дополнительный способ форматирования строк,
    так "See {0}, {1} and {foo}".format("A", "B", foo="C") вернет результат "See
    A, B and C" (глава 7).

    Метод словаря D.has_key(X) будет удален. Вместо него следует ис
    пользовать проверку на членство X in D (главы 4 и 8).

    Сравнение (при сортировке) смешанных нечисловых типов вместо использования текущей реализации механизма упорядочения бу
    дет вызывать исключение (главы 8 и 9).

    Методы словаря .keys(), .items() и .values() вместо списков будут возвращать «представления» объектов, поддерживающие возмож
    ность выполнения итераций. Чтобы вернуться к прежней логике выполнения, следует выполнять принудительное преобразование с помощью list() (глава 8).

    Согласно предыдущему пункту следующий шаблон программиро
    вания будет неработоспособен: k = D.keys(); k.sort(); вместо него следует использовать k = sorted(D) (главы 4 и 8).

    Встроенная функция file() может быть удалена. Вместо нее следу
    ет использовать функцию open() (глава 9).

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

    Встроенная функция raw_input() будет переименована в input().
    Чтобы обеспечить поддержку логики работы нынешней функции input()
    , следует использовать eval(input()) (глава 10).

    Инструкция выполнения строки программного кода exec снова ста
    нет встроенной функцией (глава 10).

    Появятся новые зарезервированные слова as, with и nonlocal. Со
    гласно предыдущему пункту exec перестанет быть зарезервирован
    ным словом (глава 11).

    Инструкция печати станет функцией, поддерживающей большое число возможностей. Вместо print x, y следует использовать print(x,
    y), а также можно использовать новые ключевые аргумен
    ты функции для настройки параметров печати: file=sys.stdout,
    sep="
    " и end="\n" (глава 11).

    Появится расширенная реализация операции распаковки: инст
    рукция, поддерживающая универсальную форму присваивания по
    следовательности, такая как a, b, *rest = some_sequence, теперь будет работать, как и *rest, a = stuff. Таким образом, число элементов слева и справа от инструкции присваивания больше не должно сов
    падать (глава 11).

    Автоматический режим распаковки кортежей через присваивание последовательности для функций будет недоступен. Больше нельзя будет записать def foo(a, (b, c)):, вместо этого необходимо будет выполнять явное присваивание последовательности: def foo(a, bc):
    b,
    c = bc (глава 11).

    Встроенная функция xrange() будет переименована в range(). То есть в этой версии Python будет существовать только функция range()
    (глава 13).

    В протоколе итераций метод X.next() будет переименован в X.__next__(), и появится новая встроенная функция next(X), кото
    рая будет вызывать метод X.__next__() объекта (главы 13 и 17).

    Встроенные функции zip(), map() и filter() будут возвращать ите
    раторы. Чтобы вернуться к логике использования списков, следует применять list() (главы 13 и 17).

    Функции могут включать необязательные комментарии, описываю
    щие аргументы и результаты: так, в результате объявления def foo(x:
    "spam",
    y: list(range(3))) > 42*2: к объектуфункции на этапе време
    ни выполнения будет присоединен атрибутсловарь foo.func_an
    notations
    : {'x': "spam", 'y': [0, 1, 2], "return": 84} (глава 15).

    Новая инструкция nonlocal x, y позволит выполнять присваивание переменным в области видимости функции (глава 16).

    Функция apply(func, args, kws) будет удалена. Вместо нее следует использовать синтаксическую конструкцию func(*args, **kws) (гла
    вы 16 и 17).

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

    Встроенная функция reduce() будет удалена. Вместо нее организуй
    те циклы, как показано в этой книге; lambda, map() и filter() будут сохранены в версии 3.0 (глава 17).

    Все импортирование по умолчанию будет выполняться по абсолют
    ному пути, а собственный каталог пакета будет пропускаться: для выполнения импорта по относительному пути, как это делается сей
    час, следует использовать синтаксическую конструкцию from . import
    (глава 21).

    Все классы будут классами нового стиля и будут поддерживать со
    временные новые расширения (глава 26).

    Наследование class Spam(object), необходимое для создания нынеш
    них классов, будет необязательным для классов. В версии 3.0 и ны
    нешняя «классика», и классы «нового стиля» будут относиться к тому, что сейчас называется классами нового стиля (глава 26).

    В инструкции try конструкция except name превратится в конструк
    цию except name as value (глава 27).

    В инструкции raise конструкция raise E, V должна будет записы
    ваться как raise E(V), то есть экземпляр исключения должен созда
    ваться явно (глава 27).

    Включен оператор контекста исключений with/as, описываемый в этой книге (глава 27).

    Все пользовательские и встроенные исключения описываются классами, а не строками (глава 28).

    Все исключения, определяемые пользователем, должны наследо
    вать встроенный BaseEsception – корневой класс иерархии классов исключений (Exception – это его подкласс и его вполне можно ис
    пользовать в качестве базового для организации своей иерархии).
    Встроенный класс StandardException будет ликвидирован (глава 28).

    Структура пакета стандартной библиотеки может быть существен
    но изменена (подробности – в примечаниях к выпуску Python 3.0).
    Список нововведений может показаться устрашающим на первый взгляд, однако не следует забывать, что основы языка Python, описы
    ваемые в этой книге, останутся неизменными и в версии 3.0. В дейст
    вительности большая часть из того, что перечислено выше, будет ока
    зывать на программистов не слишком большое влияние, если это влияние вообще будет ощущаться.
    Кроме того, следует отметить, что этот список попрежнему остается достаточно гипотетическим и в конечном счете может оказаться непол
    ным и неточным, поэтому за официальной информацией следует озна
    комиться с примечаниями к выпуску Python 3.0. Если вы пишете про
    граммный код для линейки Python 2.0, обратите внимание на сценарий
    «2to3», который выполняет автоматическое преобразование программ
    ного кода, написанного для интерпретатора версии 2.x в программный

    28
    Предисловие код для интерпретатора версии 3.0. Этот сценарий будет поставляться в составе Python 3.0.
    Об этой серии
    Книги издательства O’Reilly из серии «Изучаем…» предназначены для тех, кто хочет приобрести новые знания и предпочитает структурный подход к изучению. Каждая книга из этой серии использует принци
    пы обучения, которые мы (не без вашей помощи) выработали для пере
    дачи знаний, необходимых вам, чтобы присоединиться к новому про
    екту, справиться с неожиданным заданием или быстро изучить новый язык программирования.
    Чтобы получить максимум пользы от любой книги из серии «Изуча
    ем…», мы рекомендуем прорабатывать главы последовательно. Вы увидите, что усвоение материала идет быстрее, если внимательно чи
    тать указания и рекомендации, включенные в них. Вы можете также использовать заключительные разделы для предварительного знаком
    ства с ключевыми аспектами каждой главы и с тем, что вам предстоит изучать. Наконец, чтобы помочь вам проверить степень усвоения ма
    териала, каждая глава завершается разделом «Закрепление пройден
    ного», который включает короткие контрольные вопросы. Кроме того,
    каждая часть включает практические упражнения.
    Книги серии «Изучаем…» работают с вами как надежный и проверен
    ный коллега или преподаватель; мы стремимся сделать ваше обучение как можно более приятным. Свои отзывы о нашей работе и предложе
    ния по улучшению можете направлять по адресу learning@oreilly.com.
    Использование программного кода примеров
    Данная книга призвана оказать вам помощь в решении ваших задач. Вы можете свободно использовать примеры программного кода из этой кни
    ги в своих приложениях и в документации. Вам не нужно обращаться в издательство за разрешением, если вы не собираетесь воспроизводить существенные части программного кода. Например, если вы разрабаты
    ваете программу и используете в ней несколько отрывков программного кода из книги, вам не нужно обращаться за разрешением. Однако в слу
    чае продажи или распространения компактдисков с примерами из этой книги вам необходимо получить разрешение от издательства O’Reilly.
    Если вы отвечаете на вопросы, цитируя данную книгу или примеры из нее, получение разрешения не требуется. Но при включении существен
    ных объемов программного кода примеров из этой книги в вашу доку
    ментацию вам необходимо будет получить разрешение издательства.
    Мы приветствуем, но не требуем добавлять ссылку на первоисточник при цитировании. Под ссылкой на первоисточник мы подразумеваем указание авторов, издательства и ISBN. Например: «Learning Python,
    by Mark Lutz. Copyright 2008 O’Reilly Media, Inc., 9780596513986».

    Предисловие
    29
    За получением разрешения на использование значительных объемов программного кода примеров из этой книги обращайтесь по адресу per+
    missions@oreilly.com
    Типографские соглашения
    В этой книге приняты следующие соглашения:
    Курсив
    Курсив
    применяется для выделения адресов электронной почты,
    URL, имен файлов и каталогов, а также терминов, когда они упо
    минаются впервые.
    Моноширинный шрифт
    Применяется для представления содержимого файлов, вывода ко
    манд, а также для выделения имен модулей, методов, инструкций и команд.
    Моноширинный жирный
    Используется для выделения команд или текста, который должен быть введен пользователем, а также для выделения участков про
    граммного кода в листингах.
    Моноширинный курсив
    Обозначает замещаемые элементы в программном коде и коммента
    рии.
    <Моноширинный шрифт>
    Таким способом выделяются синтаксические элементы, которые должны замещаться действительным программным кодом.
    Так выделяются советы, предложения или примечания общего характера, имеющие отношение к расположенному рядом тексту.
    Так выделяются предупреждения или предостережения, имею
    щие отношение к расположенному рядом тексту.
    В примерах этой книги символ % в начале системной командной строки обозначает приглашение к вводу независимо от того, какое приглаше
    ние используется на вашей машине (например, C:\Python25> в окне
    Dos). Вам не нужно вводить символ %. Точно также в листингах, ото
    бражающих сеанс работы с интерпретатором, не нужно вводить симво
    лы >>> и ..., которые показаны в начале строки, – это приглашения к вводу, которые выводятся интерпретатором Python. Вводите лишь текст, который находится сразу же за этими приглашениями. Чтобы помочь вам запомнить это правило, все, что должно вводиться пользо
    вателем, выделено жирным шрифтом. Кроме того, обычно не требует
    ся вводить текст в листингах, начинающийся с символа #, так как это комментарии, а не исполняемый программный код.

    30
    Предисловие
    Safari
    ®
    Books Online
    Если на обложке технической книги есть пиктограмма
    «Safari
    ®
    Books Online», это означает, что книга доступ
    на в Сети через O’Reilly Network Safari Bookshelf.
    Safari предлагает намного лучшее решение, чем электронные книги.
    Это виртуальная библиотека, позволяющая без труда находить тысячи лучших технических книг, вырезать и вставлять примеры кода, за
    гружать главы и находить быстрые ответы, когда требуется наиболее верная и свежая информация. Она свободно доступна по адресу http://
    safari.oreilly.com
    Как с нами связаться
    С вопросами и предложениями, касающимися этой книги, обращай
    тесь в издательство:
    O’Reilly Media
    1005 Gravenstein Highway North
    Sebastopol, CA 95472 8009989938 (в Соединенных Штатах Америки или в Канаде)
    7078290515 (международный)
    7078290104 (факс)
    Список опечаток, файлы с примерами и другую дополнительную ин
    формацию вы найдете на сайте книги:
    http://www.oreilly.com/catalog/9780596513986
    Свои пожелания и вопросы технического характера отправляйте по адресу:
    bookquestions@oreilly.com
    Дополнительную информацию о книгах, обсуждения, Центр ресурсов издательства O’Reilly вы найдете на сайте:
    http://www.oreilly.com
    Обновления и дополнения к книге вы также можете найти на сайтах,
    упоминавшихся выше в этом предисловии.
    1   2   3   4   5   6   7   8   9   ...   98


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