日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

淺談Python里面None True False之間的區(qū)別

瀏覽:36日期:2022-07-18 08:12:53

None雖然跟True False一樣都是布爾值。

雖然None不表示任何數(shù)據(jù),但卻具有很重要的作用。

它和False之間的區(qū)別還是很大的!

例子:

>>> t = None>>> if t:... print('something')... else:... print('nothing')...nothing

淺談Python里面None True False之間的區(qū)別

區(qū)分None和False.使用is來操作!

>>> if t is None:... print('this is None!')... else:... print('this is ELSE!')...this is None!>>>

淺談Python里面None True False之間的區(qū)別

雖然是個小小的區(qū)別!但是在Python里面是重要的。你需要將None和不含任何值的空數(shù)據(jù)結(jié)構(gòu)區(qū)分開。

0值的整型/浮點型,空字符串(‘ ’),空列表([]),空元組({}),空集合(set())都是等價于False,但是不等于None。

現(xiàn)在,寫一個函數(shù):

>>> def oj(t):... if t is None:... print('this is None')... elif t:... print('this is True')... else:... print('this is False')...

淺談Python里面None True False之間的區(qū)別

進(jìn)行數(shù)據(jù)測驗:

>>> oj(None)this is None>>> oj(True)this is True>>> oj(False)this is False>>> oj(0)this is False>>> oj(0.0)this is False>>> oj([])this is False>>> oj(())this is False>>> oj({})this is False

淺談Python里面None True False之間的區(qū)別

以上說明,None,F(xiàn)alse,True還是有很大不同的~

補(bǔ)充知識:python '0.3 == 3 * 0.1' 為False的原因

一.引入

如果你在你的解釋器中輸入以下第一行代碼:

>>> 0.3 == 3 * 0.1

False

你會發(fā)現(xiàn),輸出為False。

對于CS小白而言,對此表示費(fèi)解。

因此我查了相關(guān)的資料,進(jìn)行了一下總結(jié)。

二.浮點算法的問題和局限

1.計算機(jī)硬件對于浮點數(shù)的處理方式

首先,我們必須明白一件事情。浮點數(shù)在計算機(jī)硬件中表示為基數(shù)2(二進(jìn)制)的分?jǐn)?shù)。

例如:

0.125(10) == 1/10 + 2/100 + 5/1000

0.001(2) == 0/2 + 0/4 + 0/8

這兩個分?jǐn)?shù)具有相同的值,唯一的實際區(qū)別是,第一個分?jǐn)?shù)以10為基數(shù)的分?jǐn)?shù)表示,第二個分?jǐn)?shù)以2為基數(shù)。當(dāng)我們輸入0.125時,計算機(jī)硬件會以第二種方式表示,而不是第一種。

但是不幸的是,大多數(shù)十進(jìn)制分?jǐn)?shù)不能完全表示為二進(jìn)制分?jǐn)?shù)。

結(jié)果是,通常我們輸入的十進(jìn)制浮點數(shù)僅由計算機(jī)中實際存儲的二進(jìn)制浮點數(shù)

近似。但是在十進(jìn)制不能完全表示為二進(jìn)制分?jǐn)?shù)的情況下,無論多么近似,終究不是確切值。

2.例子:對于0.1的處理

例如0.1(10),無論我們愿意使用多少個2位數(shù)字,十進(jìn)制值0.1都不能精確表示為2進(jìn)制小數(shù),即以2為底的1/10是無限重復(fù)的分?jǐn)?shù)。

0.1(10) == 0.0001100110011001100110011001100110011001100110011...(2)

當(dāng)我們讓它停在某個有限的位數(shù),就可以得出一個近似值。

因為Python浮點數(shù)可使用 53位精度 ,

因此輸入十進(jìn)制數(shù)時計算機(jī)內(nèi)部存儲的值0.1是

0.00011001100110011001100110011001100110011001100110011010(2)

這個值接近但是不等于1/10.

這也是造成print(0.3 == 3 * 0.1)輸出為False的原因。

如果要強(qiáng)制使用python輸出計算機(jī)內(nèi)保存的0.1的真實十進(jìn)制值,應(yīng)該為

>>> 0.1

0.1000000000000000055511151231257827021181583404541015625

由于這一串?dāng)?shù)字實在太長了,所以Python通過顯示舍入的值來保持?jǐn)?shù)字的可管理性。所以實際上我們看到是:

>>> 0.1

0.1

但是我們要明白,機(jī)器中的值不完全是1/10,這只是舍入了真實機(jī)器值的顯示。

3.一點有趣的東西

上面我們提到了Python通過顯示舍入的值來保持?jǐn)?shù)字的可管理性,我們看到的只是舍入了真實機(jī)器值的顯示。通過下面的例子,我們就可以更加清楚這一事實。

當(dāng)我們用python寫下下面的代碼時,就會發(fā)現(xiàn)這個神奇的現(xiàn)象。

這本質(zhì)上是二進(jìn)制浮點數(shù):這不是Python中的bug,也不是代碼中的bug。在支持硬件浮點算術(shù)的所有語言中,都會看到同一種東西(盡管某些語言在默認(rèn)情況下或在所有輸出模式下可能不會顯示差異)。

1)0.1+0.2

>>> 0.1 + 0.2

0.30000000000000004

2)round(2.675, 2)

i)round( x [, n] )的用法

作用: 返回浮點數(shù)x的四舍五入值。

參數(shù):

x ? 數(shù)值/數(shù)值表達(dá)式。

n ? 要保留的小數(shù)位數(shù),可以省略。若省略,n默認(rèn)為0,即四舍五入到整數(shù)。

ii)round( 2.675, 2)

按照我們的邏輯來看,輸入round( 2.675, 2 ),輸出應(yīng)該為2.68。但是實際上是:

>>> round(2.675, 2)

2.67

三.表示錯誤(選讀)

在這里我們詳細(xì)說明“ 0.1”示例,并說明我們?nèi)绾巫约簩Υ祟惽闆r進(jìn)行準(zhǔn)確的分析。如果你不想深究其背后的原因,下面的可以忽略。

1.表示錯誤的概念、影響和原因

(1)概念

表示錯誤是指某些(在實際中為大多數(shù))小數(shù)部分不能完全表示為二進(jìn)制(基數(shù)為2)分?jǐn)?shù)。

(2)影響

使得Python(或Perl,C,C ++,Java,F(xiàn)ortran和其他許多語言)經(jīng)常不顯示我們所期望的確切十進(jìn)制數(shù)字。

(3)原因

如今,幾乎所有機(jī)器都使用IEEE-754浮點算法,并且?guī)缀跛衅脚_都將Python浮點數(shù)映射到IEEE-754“雙精度”。754個double包含53位精度,因此在輸入時,計算機(jī)會努力將浮點數(shù)轉(zhuǎn)換為J / 2 ** N形式的最接近分?jǐn)?shù), 其中J是一個正好包含53位的整數(shù)。

2.'0.1'的具體分析

轉(zhuǎn)化目標(biāo):1 / 10 ~= J / (2 ** N)

所以:J ~= 2 ** N / 10

1)求解N

因為J是一個正好包含53位的整數(shù)(但是實際上最后我們用的是J的近似值( >=2 ** 52 and < 2 ** 53)是通過N計算出來的),并且N是一個整數(shù),所以我們可以得到N的最佳值是56

>>> 2**524503599627370496>>> 2**539007199254740992>>> 2**56/107205759403792793

2)求解我們要用的J的近似值

我們通過N來求解實際的J,我們實際上用的J其實是(2**N /10)四舍五入之后的值。

i)divmod(a, b)

功能: 接收兩個數(shù)字類型(非復(fù)數(shù))參數(shù),返回一個包含商和余數(shù)的元組(a // b, a % b)。

參數(shù):

a ? 被除數(shù)

b ? 除數(shù)

ii)求解J近似值

>>> q, r = divmod(2**56, 10)>>> r6

因為余數(shù)為6>5,所以我們用的J的近似值是

>>> q+1

7205759403792794

3)求解'0.1'的近似值

因此,在754倍精度中,最接近1/10的最佳近似值是

7205759403792794 / 72057594037927936

【注】由于我們四舍五入,因此實際上比1/10大一點;如果我們不進(jìn)行四舍五入,則商將小于1/10。但是在任何情況下都不能完全是 1/10!

4)獲取計算機(jī)存儲值

通過上面的分析,我們可以看到計算機(jī)永遠(yuǎn)不會“看到” 1/10:它看到的是上面給出的精確分?jǐn)?shù),它可以得到的最佳754倍近似值(即J的近似值)

>>> .1 * 2**56

7205759403792794.0

如果我們將該分?jǐn)?shù)乘以10 ** 30,我們可以看到其30個最高有效十進(jìn)制數(shù)字的(截斷)值:

>>> 7205759403792794 * 10**30 // 2**56

100000000000000005551115123125L

在Python 2.7和Python 3.1之前的版本中,Python將該值四舍五入為17個有效數(shù)字,即為’0.10000000000000001’。

在最新版本中,Python會基于最短的十進(jìn)制分?jǐn)?shù)顯示一個值,該值會正確舍入為真實的二進(jìn)制值,并僅得出’0.1’。

以上這篇淺談Python里面None True False之間的區(qū)別就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲精华国产欧美| 久久激情综合网| 国产成年精品| 精品一区欧美| 亚洲午夜黄色| 日本精品另类| 伊人久久国产| 亚洲18在线| 不卡一区综合视频| 久久国产生活片100| 成人午夜国产| 国产精品一区二区三区av| 日韩国产一区二区三区| 日韩欧乱色一区二区三区在线| 黑森林国产精品av| 国产精品一区二区三区四区在线观看| 午夜久久美女| 国产va在线视频| 国产精品日本一区二区不卡视频 | 日本午夜免费一区二区| 久久精品资源| 欧美日中文字幕| 最新国产精品久久久| 国内不卡的一区二区三区中文字幕| 久久久国产精品一区二区中文| 亚洲一区二区三区四区五区午夜| 欧美国产另类| 丝袜亚洲另类欧美| 欧美韩一区二区| 综合激情五月婷婷| 99国产精品一区二区| 欧美视频精品全部免费观看| 亚洲免费播放| 日韩欧美午夜| 精品三级av| 国产精品亚洲人成在99www| 99热精品在线| 狠狠干成人综合网| 新版的欧美在线视频| 国产精品草草| 91精品国产自产精品男人的天堂| 午夜久久影院| 激情六月综合| 国产在视频一区二区三区吞精| 久久国产精品毛片| 国内精品99| 91精品国产自产在线观看永久∴| **爰片久久毛片| 亚洲精品美女| 中文字幕一区二区三区日韩精品| 久久精品高清| 精品成人免费一区二区在线播放| 国产日韩在线观看视频| 69堂免费精品视频在线播放| 亚洲综合电影一区二区三区| 最新亚洲一区| 男人的天堂久久精品| 91久久午夜| 亚洲精品激情| 亚洲一区二区三区久久久| 欧美在线网站| 免费一级片91| 日韩欧美久久| 欧美亚洲免费| 国产精品久久久久久久久免费高清| 久久国产视频网| 麻豆传媒一区二区三区| 国产成人久久精品麻豆二区| av中文字幕在线观看第一页| 91精品婷婷色在线观看| 免费精品国产的网站免费观看| 妖精视频成人观看www| 综合一区av| 久久av超碰| 国产精品久久久久久久久久白浆 | 国产精品.xx视频.xxtv| 黄色欧美在线| 日韩视频一区| 国产剧情在线观看一区| 91视频久久| 综合激情视频| 日韩欧美一区二区三区免费看| 一区免费在线| 免费在线欧美黄色| 最新亚洲一区| 国产一区二区三区四区大秀| 亚洲欧美视频| 欧美日韩一区二区国产| 一本大道色婷婷在线| 蜜臀久久久99精品久久久久久| 国产精品www.| 日韩一区精品字幕| 三上悠亚国产精品一区二区三区| 天堂成人国产精品一区| 美女视频黄免费的久久| 丝袜美腿一区二区三区| 91亚洲国产| 国产精品永久| 一区二区亚洲视频| 久久亚洲在线| 日本一二区不卡| 久久国内精品视频| 午夜日本精品| 国产麻豆久久| 日韩国产一区| 国产成人精品一区二区免费看京| 日韩久久一区| 亚洲毛片视频| 免费在线观看一区二区三区| 日韩精品麻豆| av高清一区| 热三久草你在线| 成人日韩av| 麻豆久久一区二区| 91成人小视频| 奇米狠狠一区二区三区| 亚洲天堂免费| 女主播福利一区| 黑丝一区二区| 喷白浆一区二区| 蜜臀av国产精品久久久久| 欧美专区一区二区三区| 免费国产亚洲视频| 日韩高清电影一区| 国产亚洲一卡2卡3卡4卡新区| 日韩成人一级| 国产日韩视频| 精品午夜av| 久久国产影院| 免费日韩av| 国产精品黄色| 国产探花在线精品一区二区| 日韩一区精品| 久久av超碰| 久久亚洲成人| 日韩精品免费视频人成| 国产精品色婷婷在线观看| 精品深夜福利视频| 91精品一区二区三区综合| 美女尤物久久精品| 欧美日韩一区二区三区在线电影| 美女视频黄久久| 婷婷综合社区| 国产欧美久久一区二区三区| 欧美丰满日韩| 中文一区一区三区免费在线观| 奇米777国产一区国产二区| 国产精品成人国产| 蜜臀av免费一区二区三区| 日本午夜精品| 999久久久免费精品国产| 日韩欧美2区| 亚洲一本视频| 免费看一区二区三区| 亚洲手机在线| 麻豆成人综合网| 亚洲专区在线| 久久久久国产一区二区| 国产人成精品一区二区三| 激情五月综合| 红杏一区二区三区| 深夜日韩欧美| 日韩不卡在线| 国产日韩欧美在线播放不卡| 亚洲一区黄色| 99久久视频| 成人高清一区| 国产激情欧美| 国产亚洲观看| 在线精品福利| 国产偷自视频区视频一区二区| 国产不卡人人| 精品无人区麻豆乱码久久久| 日韩和欧美一区二区三区| 99香蕉国产精品偷在线观看| 日本精品在线中文字幕| 国产成人精品福利| 久久狠狠久久| 日韩高清在线不卡| 一区二区国产在线观看| 久久国产免费| 日韩精品首页| 久久久久网站| 国产综合亚洲精品一区二| 亚洲一级特黄| 黄色在线一区| 蜜臀久久99精品久久久久久9| 亚洲欧美激情诱惑| 久久国产精品亚洲77777| 免费中文字幕日韩欧美| 免费日韩av片| 日韩欧美中文字幕电影| 日本亚州欧洲精品不卡| 日韩一区二区三区在线看| 日韩精品a在线观看91| 国产精品久久久久久久久免费高清 | 综合亚洲自拍| 欧美亚洲二区| 精品国产亚洲一区二区三区在线| 成人午夜毛片|