Читать «Изучаем Python, 3-е издание» онлайн - страница 10

Unknown Author

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

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

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

•    Восьмеричные и двоичные литералы: текущая форма записи восьмеричных чисел 0666 будет вызывать ошибку: используйте вместо нее запись в форме Ооббб, соответствующим образом будет изменен и результат, возвращаемый функцией oct(). Также запись в форме ОМОЮ будет эквивалентна числу 10, а функция bin(10) будет возвращать ’ОМОЮ" (глава 5).

•    Строковый тип st г поддерживает текст Unicode, а для представления строк с однобайтовыми символами создан новый тип bytes (например, для случаев, когда текст загружается из файлов в двоичном режиме). Тип bytes - это последовательность переменной длины малых целых чисел с интерфейсом, несколько отличающимся от str (глава 7).

•    Появился новый дополнительный способ форматирования строк,

так "See {0}, {1} and {foo}". format("A", "В", foo="C”) вернет результат "See А, В and С" (глава 7).

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

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

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

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

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

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

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

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

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