我想知道如何在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'
答案 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
)