Ограничение количества Python

Я знаю, что в большинстве, если не во всех языках программирования, целые числа, числа с плавающей запятой и т. д. у всех есть максимальная сумма, которую они могут хранить, либо без знака, либо со знаком. Например, тип int паскаля может содержать только до 32768 ~.

Что я хотел знать, так это то, каков предел для переменных Python int и с плавающей запятой. Я попробовал небольшую программу для получения очень больших чисел, но не обнаружил ошибок. Есть ли у него даже ограничения на то, насколько большими могут быть эти переменные?

Я просмотрел документацию и не смог найти то, что искал :/

Помощь будет принята с благодарностью, спасибо!


person Trent    schedule 29.03.2011    source источник
comment
Вы не смогли найти информацию IEEE с плавающей запятой? docs.python.org/tutorial/floatingpoint.html Это кажется довольно ясным.   -  person S.Lott    schedule 29.03.2011
comment
Python использует 64-битные числа с плавающей запятой (двойная точность IEEE754) и неограниченную (насколько ваш компьютер может обработать) целочисленную длину.   -  person Eric Jin    schedule 09.06.2019


Ответы (4)


В более ранних версиях было ограничение на int, но теперь оно снято, поэтому вы можете сказать, что ограничений нет, это зависит от памяти вашего компьютера. Прочтите эту статью.

person CloudyMarble    schedule 29.03.2011
comment
Версия tl; dr: небольшие целые числа Python вписываются в машинное слово платформы (например, 32-битное). Если число не подходит, оно автоматически преобразуется в «длинное» целое число, длина которого позволяет ваша оперативная память. У вас не может быть целочисленного переполнения. Если вы хотите упаковать точное количество битов (например, для интерфейса с кодом C), вы import struct, ctypes. - person 9000; 29.03.2011
comment
Хотя интересно знать, что он ограничен только памятью, также было бы неплохо узнать, как Python реализует хранение и арифметические операции с большими числами внутри. Я помню блог, в котором упоминалось, что числа хранятся с основанием 2^30, но это означало бы, что есть предел. Не могли бы вы в своем ответе также дать ссылку на какое-либо объяснение, которое дает некоторое представление о внутренней реализации? Это была бы потрясающая информация для любого питониста! - person Nav; 04.04.2021

Раньше в более ранних версиях Python существовало ограничение на int. Но это исключено, поскольку Python рассматривает целые числа как объекты. Таким образом, хотя Python выделяет 32 бита для значения, на которое указывает ссылка на объект, поскольку значение выходит за пределы 2^32, оно может продолжать увеличиваться вплоть до размера оперативной памяти на вашем компьютере.

person Hari Palappetty    schedule 06.06.2013

См. системный модуль:

import sys
dir(sys)
print sys.maxint
help(sys.float_info)

и так далее.

person juanchopanza    schedule 29.03.2011
comment
sys.maxsize для python3 - person Herrgott; 22.08.2020

Этот документ дает хорошую отправную точку, например sys.float_info.

person eat    schedule 29.03.2011