将无穷大表示为 Python 中的整数 2.7
Represent infinity as an integer in Python 2.7
我想知道如何在 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'
总结评论中所说的内容
无法在 Python 中将无穷大表示为整数。这符合许多其他语言的行为。但是,由于 Python 的动态类型系统,您可以使用 float('inf')
代替整数,并且在大多数情况下它的行为与您预期的一样。
至于为无穷大创建 'double',在 Python 中只有一种浮点类型,称为 float
,不像其他语言,例如 Java使用术语 float 和 double 来表示具有不同精度的浮点数。在 Python、floating point numbers usually use double-precision 中,它们的行为与 Java 中的双打相同。
非常大的整数(在 3.x 中制作,未在 2.x 中测试):
0x40000 #will most likely crash the shell
所以如果你想要一个无限变量,你会这样做:
Infinity = 0x40000
您可以在此处将任何整数转换为十六进制:
https://www.binaryhexconverter.com/decimal-to-hex-converter
(确保在 python 的值 returns 之前添加 0x
)
我想知道如何在 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'
总结评论中所说的内容
无法在 Python 中将无穷大表示为整数。这符合许多其他语言的行为。但是,由于 Python 的动态类型系统,您可以使用 float('inf')
代替整数,并且在大多数情况下它的行为与您预期的一样。
至于为无穷大创建 'double',在 Python 中只有一种浮点类型,称为 float
,不像其他语言,例如 Java使用术语 float 和 double 来表示具有不同精度的浮点数。在 Python、floating point numbers usually use double-precision 中,它们的行为与 Java 中的双打相同。
非常大的整数(在 3.x 中制作,未在 2.x 中测试):
0x40000 #will most likely crash the shell
所以如果你想要一个无限变量,你会这样做:
Infinity = 0x40000
您可以在此处将任何整数转换为十六进制:
https://www.binaryhexconverter.com/decimal-to-hex-converter
(确保在 python 的值 returns 之前添加 0x
)