溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python表示無窮大的方法

發(fā)布時間:2020-08-03 12:01:29 來源:億速云 閱讀:334 作者:清晨 欄目:編程語言

小編給大家分享一下python表示無窮大的方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

float('inf') 表示正無窮

-float('inf') 或 float('-inf') 表示負無窮

其中,inf 均可以寫成 Inf

起步

python中整型不用擔心溢出,因為python理論上可以表示無限大的整數(shù),直到把內(nèi)存擠爆。而無窮大在編程中常常需要的。比如,從一組數(shù)字中篩選出最小的數(shù)字。一般使用一個臨時變量用于存儲最后結果,變量去逐個比較和不斷地更新。而這臨時變量一般要初始無窮大或者去第一個元素的值。

正無窮大與負無窮大

python中并沒有特殊的語法來表示這些值,但是可以通過 float() 來創(chuàng)建它們:

>>> a = float("inf")
>>> b = float("-inf")
>>> a
inf
>>> b
-inf

為了測試這些值的存在,使用 math.isinf() 進行判斷:

>>> import math
>>> math.isinf(a)
True
>>> math.isinf(b)
True

推薦學習《python教程》

無窮大數(shù)在執(zhí)行數(shù)學計算的時候會傳播

這個就類似于數(shù)學中講述的,無窮大加上一個常數(shù)還是無窮大,無窮大與無窮大相等:

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

無窮大在比較中比任何一個數(shù)都要大。

正無窮與負無窮相加的結果是什么

有些操作時未定義的并會返回一個 NaN 結果:

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

表示非數(shù)字的 NaN

nan 值在所有操作中也會傳播,并且不會產(chǎn)生異常:

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

使用 math.isnan() 可以判斷值是否是 NaN:

>>> math.isnan(c)
True

nan 值的任何比較操作都是返回 False :

>>> float("nan") == float("nan")
False
>>> c > 3
False

更安全的類型轉換

由于無窮的存在,因此字符串裝浮點數(shù)就存在的一些例外,并且這個轉換過程不會拋出異常。如果程序員們想改變 python 的默認行為,可以使用 fpectl 模塊,但是它在標準的Python 構建中并沒有被啟用,它是平臺相關的,并且針對的是專家級程序員。這里提供一個比較簡單的轉換,就是加一個 isdigit() 判斷:

def str2float(ss):
    if not ss.isdigit():
        raise ValueError
    return float(ss)
 
sss = "inf"
a = str2float(sss)

看完了這篇文章,相信你對python表示無窮大的方法有了一定的了解,想了解更多相關知識,歡迎關注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI