在PEP 754的拒绝通知中,它声明:
该PEP已被拒绝。在开放四年后,它未能产生足够的社区兴趣。
为Python 2.6实现了这个PEP的几个想法。现在可以保证float('inf')和repr(float('inf'))可以在IEEE 754语义的每个支持平台上运行。但是,除非您自己定义inf和nan,否则仍然不支持eval(repr(float('inf')))往返:
>>> inf = float('inf') >>> inf, 1E400 (inf, inf) >>> neginf = float('-inf') >>> neginf, -1E400 (-inf, -inf) >>> nan = float('nan') >>> nan, inf * 0. (nan, nan)
这似乎表明在Python中没有对Inf,NaN和-Inf的本机支持,并且提供的示例是准确的!但是,这是不必要的冗长:
$ python2.7
>>> 1e400
inf
>>> 1e400 * 0
nan
>>> -1e400 * 0
nan
>>> -1e400
-inf
$ python3
>>> 1e400
inf
>>> 1e400 * 0
nan
>>> -1e400 * 0
nan
>>> -1e400
-inf
这些是数字1 * 10 ^ 400的规范表示。默认情况下,语法中不存在名称inf
和nan
,但如果它们在表示中,那么为什么不是inf
和nan
关键字?
我不是在问为什么PEP被拒绝,因为这是基于意见的。
我的猜测是,没有人想要不必要地混淆命名空间。
如果你想做数学,你仍然可以做:
import math
print(math.inf)
print(-math.inf)
print(math.nan)
输出:
inf
-inf
nan
您可以使用
浮动( 'INF')
np.nan