Язык программирования Python



Тип int и long


Два типа: int (целые числа) и long (целые произвольной точности) служат моделью для представления целых чисел. Первый соответствует типу long в компиляторе C для используемой архитектуры. Числовые литералы можно записать в системах счисления с основанием 8, 10 или 16:

# В этих литералах записано число 10 print 10, 012, 0xA, 10L

Набор операций над числами - достаточно стандартный как по семантике, так и по обозначениям:

>>> print 1 + 1, 3 - 2, 2*2, 7/4, 5%3 2 1 4 1 2 >>> print 2L ** 1000 107150860718626732094842504906000181056140481170553360744375038 837035105112493612249319837881569585812759467291755314682518714 528569231404359845775746985748039345677748242309854210746050623 711418779541821530464749835819412673987675591655439460770629145 71196477686542167660429831652624386837205668069376 >>> print 3 < 4 < 6, 3 >= 5, 4 == 4, 4 != 4 # сравнения True False True False >>> print 1 << 8, 4 >> 2, ~4 # побитовые сдвиги и инверсия 256 1 -5 >>> for i, j in (0, 0), (0, 1), (1, 0), (1, 1): ... print i, j, ":", i & j, i | j, i ^ j # побитовые операции ... 0 0 : 0 0 0 0 1 : 0 1 1 1 0 : 0 1 1 1 1 : 1 1 0

Значения типа int должны покрывать диапазон от -2147483648 до 2147483647, а точность целых произвольной точности зависит от объема доступной памяти.

Стоит заметить, что если в результате операции получается значение, выходящее за рамки допустимого, тип int может быть неявно преобразован в long:

>>> type(-2147483648) <type 'int'> >>> type(-2147483649) <type 'long'>

Также нужно быть осторожным при записи констант. Нули в начале числа - признак восьмеричной системы счисления, в которой нет цифры 8:

>>> 008 File "<stdin>", line 1 008 ^ SyntaxError: invalid token




Содержание  Назад  Вперед