Анимация
JavaScript
|
Главная Библионтека Глава 11 Встроенные типы данных В этом разделе описываются стандартные типы данных, поддержка которых встроена в интерпретатор: числа, последовательности и другие, включая сами типы. В языке Python нет явного логического типа - используйте целые числа. Некоторые операции поддерживаются всеми объектами; в частности, любые объекты можно сравнивать, проверять их истинность (см. разделы 10.2.4 и 10.2.5) и для любых объектов можно получить строковое представление с помощью встроенных функций repr() (или используя запись в обратных кавычках: expression) и str(). Объекты встроенных типов могут иметь следующие специальные атрибуты: methods Список имен статических методов объекта. Атрибут определен только, если объект имеет хотя бы один такой метод. members Список имен статических атрибутов данных объекта. Атрибут определен только, если объект имеет хотя бы один такой атрибут. При каждом обращении к атрибутам methods и members создается новая копия списка. 11.1 Числовые типы В языке Python есть четыре типа чисел: целые ( int), длинные целые (long int), с плавающей точкой (вещественные; float) и комплексные (complex). Числа создаются с использованием литералов или как возвращаемый результат встроенной функции или оператора. Числовые литералы в чистом виде (включая шест-надцатеричные и восьмеричные) дают простые целые числа. Python полностью поддерживает смешанную арифметику: если бинарный арифметический оператор имеет операнды разного типа, операнд "меньшего" типа приводится к типу другого операнда (int < long int < float < complex). Это же правило используется для сравнения чисел разного типа1. Для приведения чисел к нужному типу 1В результате, например, списки [1, 2] и [1.0, 2.0] считаются равными. 11.1.1 Целые и длинные целые числа Целые числа реализованы с использованием типа long в C, поддерживающего числа в диапазоне не менее чем от -2 147483 647 до 2 147483 647. Длинные целые имеют неограниченную точность. Литералы целых чисел могут быть записаны в десятичном, восьмеричном и шестна-дцатеричном виде. Десятичная запись состоит из идущих подряд десятичных цифр (09), причем первая цифра не может быть нулем. Восьмеричная запись образуется из нуля и следующих за ним восьмеричных цифр (0-7). Шестнадцатеричная запись образуется из приставки 0x или 0X и следующих за ней шестнадцатеричных цифр (0-9, a-z, A-z). Знак - или + не является частью литерала, а лишь унарным оператором, применяемым к объекту после его создания. Если литерал представляет число, выходящее за пределы диапазона допустимых чисел, генерируется исключение OverflowError. Целые литералы с суффиксом L или l дают длинные целые (лучше использовать l, из-за схожести символа l с единицей). Приведем несколько примеров литералов для целых и длинных целых чисел: 7 2147483647 0177 0x80000000 3L 79228162514264337593543950336L 0377L 0x100000000L 11.1.2 Вещественные числа Вещественные числа (числа с плавающей точкой) реализованы с использованием типа double в C (не менее 10 значащих цифр, наибольшее представимое число не меньше 1037). Запись литералов вещественных чисел состоит из десятичных цифр (первая цифра не может быть нулем) и содержит десятичную точку и/или экспоненциальную часть. Экспоненциальная часть начинается с символа e или E, далее следует необязательный знак (+ или - ) и одна или несколько десятичных цифр. Приведем несколько примеров литералов для чисел с плавающей точкой: 3.14 10. .001 1e100 3.14e-10 Поведение в случаях, когда результат вычисления выражения не может быть представлен в рамках типа float, зависит от поведения лежащей в основе библиотеки языка C. Обычно существуют значения, представляющие (отрицательные и положительные) Вы можете использовать встроенные функции int(), long(), float() и complex(). При приведении числа с плавающей точкой к целому (простому или длинному) типу, число округляется в сторону нуля (см. также функции floor() и ceil() в модуле math). 11.1.3 Комплексные числа Комплексные числа имеют мнимую и вещественную части, реализованные с использованием типа double в C. Литералы мнимого числа создаются путем добавления суффикса j или j к десятичной записи целого или вещественного числа. Например: 3.14J 10.j 10j .001j 1e100j 3.14e-10j Комплексные числа с ненулевой вещественной частью создаются сложением вещественной и мнимой частей или с помощью встроенной функции complex() (см. главу 12). Комплексные числа имеют два атрибута данных и один метод: real Действительная часть комплексного числа. imag Мнимая часть комплексного числа. conjugate() Возвращает комплексное число, сопряженное с данным. Преобразование комплексных чисел к другим числовым типам неоднозначно: для получения действительной части используйте атрибут real , а абсолютной величины - встроенной функцией abs() . 11.1.4 Арифметические операторы Ниже приведены арифметические операторы, применимые ко всем числам: x + y Сумма x и y. x - y Разница между x и y. x * y Произведение x на y. бесконечно малые и бесконечно большие числа. Строковое представление таких чисел зависит от версии интерпретатора и используемой для реализации библиотеки языка C, например, они могут выводиться как 1. или -1. c добавлением комментария #INF, #IND или #QNAN. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 [ 38 ] 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 |