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