Python 2 автоматически устанавливает тип в зависимости от размера значения. Руководство по максимальным значениям можно найти ниже.
Максимальное значение Int по умолчанию в Python 2 равно 65535, все, что выше, будет длинным
Например:
>> print type(65535)
<type 'int'>
>>> print type(65536*65536)
<type 'long'>
В Python 3 длинный тип данных был удален, и все целочисленные значения обрабатываются классом Int. Размер Int по умолчанию будет зависеть от архитектуры вашего процессора.
Например:
- 32-битные системы, тип данных по умолчанию для целых чисел будет Int32
- 64-битные системы, тип данных по умолчанию для целых чисел будет Int64
Мин / макс значения каждого типа можно найти ниже:
- Int8: [-128,127]
- Int16: [-32768,32767]
- Int32: [-2147483648,2147483647]
- Int64: [-9223372036854775808,9223372036854775807]
- Int128: [-170141183460469231731687303715884105728,170141183460469231731687303715884105727]
- UInt8: [0,255]
- UInt16: [0,65535]
- UInt32: [0,4294967295]
- UInt64: [0,18446744073709551615]
- UInt128: [0,340282366920938463463374607431768211455]
Если размер вашего Int превышает пределы, указанные выше, python автоматически изменит свой тип и выделит больше памяти для обработки этого увеличения значений min / max. Если в Python 2 он конвертировался в «long», то теперь он просто конвертировался в следующий размер Int.
Пример. Если вы используете 32-разрядную операционную систему, максимальное значение Int по умолчанию будет 2147483647. Если назначено значение 2147483648 или более, тип изменится на Int64.
Есть разные способы проверить размер int и его распределение в памяти.
Примечание. В Python 3 использование встроенного метода type () всегда будет возвращать <class 'int'>
независимо от того, какой размер Int вы используете.