3.7 无穷大与NaN
问题
你想创建或测试正无穷、负无穷或NaN(非数字)的浮点数。
解决方案
可以使用 float()
来创建它们。比如:
为了测试这些值的存在,使用 math.isinf()
和 math.isnan()
函数。比如:
讨论
无穷大数在执行数学计算的时候会传播,比如:
但是有些操作时未定义的并会返回一个NaN结果。比如:
NaN值会在所有操作中传播,而不会产生异常。比如:
NaN值的一个特别的地方时它们之间的比较操作总是返回False。比如:
测试一个NaN值得唯一安全的方法就是使用 math.isnan()
。
有时候程序员想改变Python默认行为,在返回无穷大或NaN结果的操作中抛出异常。fpectl
模块可以用来改变这种行为,但是它在标准的Python构建中并没有被启用,它是平台相关的, 并且针对的是专家级程序员。
Last updated
Was this helpful?