Подтвердить что ты не робот

Целочисленные диапазоны Python

В Python существует ли способ получить наибольшее целое число, которое можно использовать? Есть ли определенная константа, такая как INT_MAX?

4b9b3361

Ответ 1

Python имеет произвольные целые числа точности, поэтому истинного фиксированного максимума нет. Вы ограничены доступной памятью.

В Python 2 существуют два типа: int и long. int используйте тип C, а long - произвольная точность. Вы можете использовать sys.maxint, чтобы найти максимум int. Но int автоматически повышается до long, поэтому вам обычно не нужно беспокоиться об этом:

sys.maxint + 1

работает нормально и возвращает a long.

sys.maxint даже не существует в Python 3, поскольку int и long были объединены в один тип произвольной точности int.

Ответ 2

import re
import sys
import platform
import struct

formats = {
          "int":{"p_type":"integer", "format":"i"},
          "float":{"p_type":"float", "format":"f"},
          "double":{"p_type":"float", "format":"d"}
          }    

sys_bit = int(re.findall(r"\d+", platform.architecture()[0])[0])/8
for k,v in formats.iteritems():
    print "max {0} {1}".format(k, 2**struct.Struct(v["format"]).size*sys_bit-1)-1)
    print "min {0} {1}".format(k, -2**struct.Struct(v["format"]).size*sys_bit-1))