python中math isnan,在python中指定一个变量NaN,不用numpy

是 – 使用float(‘nan’)或float(‘NaN’)。从Python 3.5开始,你也可以使用

math.nan。

>>> a = float('nan')

>>> print(a)

nan

>>> print(a + 2)

nan

>>> a == a

False

>>> import math

>>> math.isnan(a)

True

>>> # Python 3.5+

>>> math.isnan(math.nan)

True

相反,如果需要确定值是否为NaN,请使用math.isnan。

你也可以使用Python的decimal模块构造NaN数字:

>>> from decimal import Decimal

>>> b = Decimal('nan')

>>> print(b)

NaN

>>> print(repr(b))

Decimal('NaN')

>>>

>>> Decimal(float('nan'))

Decimal('NaN')

>>>

>>> import math

>>> math.isnan(b)

True

math.isnan也将使用十进制对象。

然而,你不能在Python的fractions模块中构造NaN数字:

>>> from fractions import Fraction

>>> Fraction('nan')

Traceback (most recent call last):

File "", line 1, in

File "C:\Python35\lib\fractions.py", line 146, in __new__

numerator)

ValueError: Invalid literal for Fraction: 'nan'

>>>

>>> Fraction(float('nan'))

Traceback (most recent call last):

File "", line 1, in

File "C:\Python35\lib\fractions.py", line 130, in __new__

value = Fraction.from_float(numerator)

File "C:\Python35\lib\fractions.py", line 214, in from_float

raise ValueError("Cannot convert %r to %s." % (f, cls.__name__))

ValueError: Cannot convert nan to Fraction.

顺便说一句,你也可以做float(‘Inf’),Decimal(‘Inf’)或math.inf(3.5)来分配无限数。 (也见math.isinf)

但是,不允许执行Fraction(‘Inf’)或Fraction(float(‘inf’)),并且会抛出异常,就像NaN一样。

如果你想要一个快速,简单的方法来检查一个数字既不是NaN也不是无限的,你可以使用math.isfinite从Python 3.2。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值