在Python 2.7中将无穷大表示为整数

时间:2016-11-06 04:14:23

标签: python python-2.7 infinity

我想知道如何在Python 2.7中将inf-inf定义为int。我尝试过,似乎inf-inf只能用作float

a = float('-inf') # works
b = float('inf') # works

c = int('-inf') # compile error, ValueError: invalid literal for int() with base 10: 'inf'
d = int('inf') # compile error, ValueError: invalid literal for int() with base 10: 'inf'

2 个答案:

答案 0 :(得分:14)

总结评论中所说的内容

无法在Python中将无穷大表示为整数。这符合许多其他语言的行为。但是,由于Python的动态类型系统,您可以使用float('inf')代替整数,它将按照您的预期运行。

至于为infinity创建'double',在Python中只有一个浮点类型,称为float,与其他语言(如Java)不同,它使用术语float和double来表示不同的浮点数精确。在Python中,floating point numbers usually use double-precision,因此它们的行为与Java中的双精度相同。

答案 1 :(得分:-1)

非常大的整数(在3.x中制作,未在2.x中测试):

0x40000 #will most likely crash the shell

所以如果你想要一个无限变量,你会这样做:

Infinity = 0x40000

你可以在这里做任何整数到十六进制:
https://www.binaryhexconverter.com/decimal-to-hex-converter
(确保在为python返回的值之前添加0x