如何在Python中表示一个无限数?

如何在python中表示无穷大? 无论您在程序中输入哪个数字,任何数字都不得大于此无穷大表示形式。


#1楼

另一种较不方便的方法是使用Decimal类:

from decimal import Decimal
pos_inf = Decimal('Infinity')
neg_inf = Decimal('-Infinity')

#2楼

在python2.x中,有一个肮脏的hack可以达到这个目的(除非绝对必要,否则不要使用它):

None < any integer < any string

因此,对于任何整数i ,检查i < ''都为True

在python3中已合理弃用了它。 现在这样的比较最终

TypeError: unorderable types: str() < int()

#3楼

从Python 3.5开始,您可以使用math.inf

>>> import math
>>> math.inf
inf

#4楼

首先,虽然float('inf')类型可用于比较目的,但它是float类型,但与之比较却相当慢。 因此,如果将大量数字与float('inf')进行比较,则请小心选择它。 我不确定“ math.inf”的性能。


#5楼

NumPy库中有一个无穷大: from numpy import inf 。 要获得负无穷大,只需写-inf


#6楼

似乎没有人明确提到负无穷大,所以我认为我应该添加它。

对于正无穷大(仅出于完整性考虑):

math.inf

对于负无穷大:

-math.inf

#7楼

另外,如果您使用SymPy,则可以使用sympy.oo

>>> from sympy import oo
>>> oo + 1
oo
>>> oo - oo
nan

等等


#8楼

我不知道您在做什么,但是float("inf")为您提供了一个float Infinity,它比任何其他数字都大。


#9楼

在Python中,您可以执行以下操作:

test = float("inf")

在Python 3.5中,您可以执行以下操作:

import math
test = math.inf

接着:

test > 1
test > 10000
test > x

永远是真的。 当然,除非指出,否则x也是无穷大或“ nan”(“非数字”)。

另外(仅Python 2.x),与Ellipsis相比, float(inf)较小,例如:

float('inf') < Ellipsis

将返回true。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值