python的正負無窮float("inf")的用法


今天,在看書的時候看到這么一個例子:

這是用來求解 從某個數字列表中找出倆個彼此最接近但是不相等的數(倆者之間的絕對差是最小的)

>>> from random import randrange
>>> seq = [randrange(10**10) for i in range(100)]
>>> dd=float("inf")
>>> for x in seq:
...     for y in seq:
...         if x==y:continue
...         d=abs(x-y)
...         if d<dd:
...             xx,yy,zz=x,y,d
... 
>>> xx,yy
(6455592839, 1698708708)

但我看到這個例子的時候,看到了一個沒有遇到過的語句:dd = float(“inf”)

然后開始查閱資料后,這個是表示“正負無窮”的意思,下面對於這個用法記錄一下:

1.正無窮:float("inf"); 負無窮:float("-inf")

2.利用inf做簡單的加法、乘法等算數運算仍然會的到inf:

>>> 45+float("inf")
inf
>>> 88*float("inf")
inf

注意:利用inf乘以0會的到not-a-number(nan)

>>> 0*float("inf")
nan

3.除了inf外的其他數除以inf,會得到0:

>>> 2017/float("inf")
0.0
>>> 176.5/float("inf")
0.0
>>> float("inf")/float("inf")  --> 除了這個會得到nan外
nan

4.當然從數學意義上面可以得知,通常的運算是不會得到 inf值的

5.不等式:

當我們涉及到 < 和 > 時:

  所有數都比 -inf 大;

  所有數都比 +inf 小;


免責聲明!

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



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