其他分享
首页 > 其他分享> > 3.7无穷大于NaN

3.7无穷大于NaN

作者:互联网

问题

​ 你想创建或测试正无穷、负无穷或NaN(非数字)的浮点数。

解决方案

​ Python并没有特殊的语法来表示这些特殊的浮点值,但是可以使用float()来创建它们。比如:

a = float('inf')
b = format('-inf')
c = float('nan')
print(a)  # ->inf
print(b)  # ->-inf
print(c)  # ->nan

​ 为了测试这些值的存在,使用math.isif()和math.isnan()函数。比如:

import math

print(math.isinf(a))  # ->True
print(math.isnan(c))  # ->True

讨论

​ 无穷大数在执行数学计算的时候会传播,比如:

a = float('inf')
print(a + 45)  # ->inf
print(a * 10)  # ->inf
print(10 / a)  # ->0.0

​ 但是有些操作时未定义的并返回一个NaN结果。比如:

a=float('inf')
print(a/a) # ->nan
b=float('-inf')
print(a+b)# ->nan

NaN值会在所有操作中传播,而不会产生异常。比如:

c=float('nan')
print(c+23)# ->nan
print(c/2)# ->nan
print(math.sqrt(c))# ->nan

​ NaN值的一个特别的地方是它们之间的比较操作总是返回False。比如:

c=float('nan')
d=float('nan')
print(c==d)  # ->False
print(c is d) # ->False

​ 由于这个原因,测试一个NaN值的唯一安全的方法就是使用math.isnan()

标签:无穷大,NaN,float,nan,3.7,print,inf,math
来源: https://www.cnblogs.com/ye-peng/p/15969554.html