Python 3有float('inf')
和Decimal('Infinity')
,但没有int('inf')
。那么,为什么语言中缺少表示无限整数集的数字? int('inf')
不合理吗?
答案 0 :(得分:10)
从这里采取:https://www.gnu.org/software/libc/manual/html_node/Infinity-and-NaN.html
IEEE 754浮点数可以表示正或负无穷大,以及NaN(不是数字)
也就是说,float
和Decimal
的表示可以存储这些特殊值。但是,基本类型int
中没有任何内容可以存储相同的内容。当你在无符号的32位int中超过2 ^ 32的限制时,你只需再次翻转为0。
如果需要,可以创建一个包含整数的类,该整数可能具有无限值的可能性。
答案 1 :(得分:4)
你是对的,可以使用整数无穷大,并且没有添加到Python标准中。这可能是因为math.inf
几乎在所有情况下都取代了它。
答案 2 :(得分:2)
对于python 2。 有时您需要一个非常大的整数。例如,我可能想要生成一个带有x [:n]的子数组,我可能希望有时将n设置为一个值,以便生成整个数组。由于你不能使用float来表示n(python想要一个整数),你需要一个“大整数”。这样做的一个好方法是使用可用的最大整数:sys.maxint。 这是一个例子:
# MAX_SOURCES = sys.maxint # normal setting
MAX_SOURCES = 5 # while testing
# code to use an array ...
... sources[:MAX_SOURCES]
因此,在测试时,我可以使用较小的源数组,但在生产中使用完整的数组。