Python 無窮大與NaN


想創建或測試正無窮、負無窮或NaN(非數字) 的浮點數

 

Python 並沒有特殊的語法來表示這些特殊的浮點值,但是可以使用float() 來創建它們。比如:

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

為了測試這些值的存在,使用math.isinf() 和math.isnan() 函數。比如:
>>> math.isinf(a)
True
>>> math.isnan(c)
True
>>>

 

跟比較和操作符相關的時候,無窮大數在執行數學計算的時候會傳播,比如:

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

 

但是有些操作時未定義的並會返回一個NaN 結果

>>> c = float('nan')
>>> c + 23
nan
>>> c / 2
nan
>>> c * 2
nan
>>> math.sqrt(c)
nan
>>>

 

NaN 值的一個特別的地方時它們之間的比較操作總是返回False。

>>> c = float('nan')
>>> d = float('nan')
>>> c == d
False
>>> c is d
False

 由於這個原因,測試一個NaN 值得唯一安全的方法就是使用math.isnan() ,也就是上面演示的那樣。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM