欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Python中浮點(diǎn)數(shù)的示例分析-創(chuàng)新互聯(lián)

這篇文章主要為大家展示了“Python中浮點(diǎn)數(shù)的示例分析”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Python中浮點(diǎn)數(shù)的示例分析”這篇文章吧。

建陽(yáng)ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書(shū)銷(xiāo)售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話(huà)聯(lián)系或者加微信:028-86922220(備注:SSL證書(shū)合作)期待與您的合作!

提到的部分問(wèn)題,讀者們可以先思考下:

  • 若兩個(gè)元組相等,即 a==b 且 a is b,那么相同索引的元素(如 a[0] 、b[0])是否必然相等呢?

  • 若兩個(gè)對(duì)象的 hash 結(jié)果相等,即 hash(a) == hash(b),那么它們是否必然相等呢?

答案當(dāng)然都為否(不然就不叫冷知識(shí)了),大家可以先嘗試回答一下,然后再往下看。

-----思考分割線(xiàn)-----

好了,先來(lái)看看第一個(gè)問(wèn)題。兩個(gè)相同的元組 a、b,它們有如下的關(guān)系:

>>> a = (float('nan'),)
>>> b = a
>>> a  # (nan,)
>>> b  # (nan,)

>>> type(a), type(b)
(<type 'tuple'>, <type 'tuple'>)

>>> a == b
True

>>> a is b # 即 id(a) == id(b)
True

>>> a[0] == b[0]
False

以上代碼表明:a 等于 b(類(lèi)型、值與 id 都相等),但是它們的對(duì)位元素卻不相等。

兩個(gè)元組都只有一個(gè)元素(逗號(hào)后面沒(méi)有別的元素,這是單元素的元組的表示方法,即 len(a)==1 )。float() 是個(gè)內(nèi)置函數(shù),可以將入?yún)?gòu)造成一個(gè)浮點(diǎn)數(shù)。

為什么會(huì)這樣呢?先查閱一下文檔,這個(gè)內(nèi)置函數(shù)的解析規(guī)則是:

sign      ::= "+" | "-"
infinity    ::= "Infinity" | "inf"
nan      ::= "nan"
numeric_value ::= floatnumber | infinity | nan
numeric_string ::= [sign] numeric_value

它在解析時(shí),可以解析前后的空格、前綴的加減號(hào)(+/-)、浮點(diǎn)數(shù),除此之外,還可以解析兩類(lèi)字符串(不區(qū)分大小寫(xiě)):"Infinity"或"inf",表示無(wú)窮大數(shù);“nan”,表示不是數(shù)(not-a-number),確切地說(shuō),指的是除了數(shù)以外的所有東西。

前面分享的第一個(gè)冷知識(shí)就跟“nan”有關(guān),作為整體,兩個(gè)元組相等,但是它們唯一的元素卻不相等。之所以會(huì)這樣,因?yàn)椤皀an”表示除了數(shù)以外的東西,它是一個(gè)范圍,所以不可比較。

作為對(duì)比,我們來(lái)看看兩個(gè)“無(wú)窮大的浮點(diǎn)數(shù)”是什么結(jié)果:

>>> a = (float('inf'),)
>>> b = a
>>> a  # (inf,)
>>> b  # (inf,)

>>> a == b # True
>>> a is b # True
>>> a[0] == b[0] # True

注意最后一次比較,它跟前面的兩個(gè)元組恰好相反,由此,我們可以得出結(jié)論:兩個(gè)無(wú)窮大的浮點(diǎn)數(shù),數(shù)值相等,而兩個(gè)“不是數(shù)的東西”,數(shù)值不相等。

化簡(jiǎn)一下,可以這樣看:

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

>>> a == b # True
>>> c == d # False

以上就是第一個(gè)冷知識(shí)的揭秘。接著看第二個(gè):

>>> hash(float('nan')) == hash(float('nan'))
True

前面剛說(shuō)了兩個(gè)“不是數(shù)的東西”不相等,這里卻顯示它們的哈希結(jié)果相等,這挺違背常理的。

我們可以推理出一條簡(jiǎn)單的結(jié)論:不相等的兩個(gè)對(duì)象,其哈希結(jié)果可能相等。

原因在于,hash(float('nan')) 的結(jié)果等于 0,它是個(gè)固定值,作比較時(shí)當(dāng)然就相等了。

其實(shí),關(guān)于 hash() 函數(shù),還埋了一個(gè)彩蛋:

>>> hash(float('inf')) # 314159
>>> hash(float('-inf')) # -314159

有沒(méi)有覺(jué)得這個(gè)數(shù)值很熟悉啊?它正是圓周率的前五位 3.14159,去除小數(shù)點(diǎn)后的結(jié)果。在早期的 Python 版本中,負(fù)無(wú)窮大數(shù)的哈希結(jié)果其實(shí)是 -271828,正是取自于自然對(duì)數(shù) e。這兩個(gè)數(shù)都是硬編碼在 Python 解釋器中的,算是某種致敬吧。

由于 float('nan') 的哈希值相等,這通常意味著它們不可以作為字典的不同鍵值,但是事實(shí)卻出人意料:

>>> a = {float('nan'): 1, float('nan'): 2}
>>> a
{nan: 1, nan: 2}

# 作為對(duì)比:
>>> b = {float('inf'): 1, float('inf'): 2}
>>> b
{inf: 2}

如上所示,兩個(gè) nan 鍵值在表示上一模一樣(注意,它們沒(méi)有用引號(hào)括起來(lái)),它們可以共存,而 inf 卻只能歸并成一個(gè),再次展示出了 nan 的神奇。

好了,兩個(gè)很冷的小知識(shí)分享完畢,背后的原因都在于 float() 取浮點(diǎn)數(shù)時(shí),Python 允許了 nan(不是數(shù))的存在,它表示不確切的存在,所以導(dǎo)致了這些奇怪的結(jié)果。

最后,我們作下小結(jié):

  • 包含 float('nan') 的兩個(gè)元組,當(dāng)做整體作比較時(shí),結(jié)果相等;兩個(gè)相等的元組,其對(duì)位的元素可能不相等

  • float('nan') 表示一個(gè)“不是數(shù)”的東西,它本身不是確定值,兩個(gè)對(duì)象作比較時(shí)不相等,但是其哈希結(jié)果是固定值,作比較時(shí)相等;可用作字典的鍵值,而且是不沖突的鍵值

  • float('inf') 表示一個(gè)無(wú)窮大的浮點(diǎn)數(shù),可看作確定的值,兩個(gè)對(duì)象做比較時(shí)相等,其哈希結(jié)果也相等;可用作字典的鍵值,但是會(huì)產(chǎn)生沖突

  • float('nan') 的哈希結(jié)果為 0,float('inf') 的哈希結(jié)果為 314159

以上是“Python中浮點(diǎn)數(shù)的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

網(wǎng)頁(yè)標(biāo)題:Python中浮點(diǎn)數(shù)的示例分析-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://aaarwkj.com/article4/ccpjie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)電子商務(wù)、移動(dòng)網(wǎng)站建設(shè)網(wǎng)站收錄、定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)
欧美一区二区精品网站| 九九九视频在线观看免费| 国产精品一级片免费看| 偷拍色图一区二区二区| 中文字幕制服日韩久久一区| 亚洲精品一区二区三区小| 亚洲香蕉视频在线播放| av在线免费观看大全| 日本人妻久久中文字幕精品| 国产国语网站在线观看| 亚洲码与欧洲码一二三| 精品国产熟女成人av| 欧美性生活在线视频观看| 夫妻性生活视频在线免费看| 久久成人综合亚洲精品欧美| 国产伦精品一区二区三区免费视频 | 日本待黄大片一区二区| 国产一区二区三区区别| 一区二区三区欧美久久| 中文字幕一区二区久久综合| 欧美日韩一区中文字幕| 久久精品国产成人综合| 老熟妇仑乱换频一区二区| 国产精品一区在线播放| 麻豆成人久久精品二区三| 亚洲精品在线免费av| 国产欧美精品久久三级| 黄色永久网站在线播放| 国产精品传媒成人免费| av真人青青小草一区二区欧美| 十八禁在线观看网址免费| 日韩精品一区二区一牛| 日韩精品视频在线观看| 国产综合永久精品日韩鬼片| 91麻豆成人国产在线观看| 91精品在线观看第一页| 国产亚洲一区二区自拍视频| 日韩激情一区二区三区| 亚洲老司机深夜福利| 青青草国产自拍在线视频| 日本在线观看免费高清|