>>2/50>>>2.0/50.4>>>2/5.00.4>>>2.0/5.00.4看到沒有?麻煩出來了,如果從小學數學知識除法,以上四個運算結果都應該是0.4。但我們看到的后三個符合,第一個居然結果是0。why?因為,在python里面有一個規定,像2/5中的除法這樣,是要取整。2除以5,商是0(整數),余數是2(整數)。那么如果用這種形式:2/5,計算結果就是商那個" />

欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

跟老齊學Python之??嗦的除法

系統 1931 0

除法??嗦的,不僅是python。

整數除以整數

看官請在啟動idle之后,練習下面的運算:

            
>>> 2/5
0
>>> 2.0/5
0.4
>>> 2/5.0
0.4
>>> 2.0/5.0
0.4

          

看到沒有?麻煩出來了,如果從小學數學知識除法,以上四個運算結果都應該是0.4。但我們看到的后三個符合,第一個居然結果是0。why?

因為,在python里面有一個規定,像2/5中的除法這樣,是要取整。2除以5,商是0(整數),余數是2(整數)。那么如果用這種形式:2/5,計算結果就是商那個整數。或者可以理解為:整數除以整數,結果是整數(商)。

繼續實驗,驗證這個結論:

            
>>> 5/2
2
>>> 6/3
2
>>> 5/2
2
>>> 6/2
3
>>> 7/2
3
>>> 8/2
4
>>> 9/2
4

          

注意:這里是得到整數商,而不是得到含有小數位的結果后“四舍五入”。例如5/2,得到的是商2,余數1,最終5/2=2。并不是對2.5進行四舍五入。

浮點數與整數相除

列為看官注意,這個標題和上面的標題格式不一樣,上面的標題是“整數除以整數”,如果按照風格一貫制的要求,本節標題應該是“浮點數除以整數”,但沒有,現在是“浮點數與整數相除”,這是因為包含了以下三種情況:

被除數是浮點數,除數是整數
被除數是整數,除數是浮點數
被除數和除數都是浮點數
出結論之前,還是先做實驗:

            
>>> 9.0/2
4.5
>>> 9/2.0
4.5
>>> 9.0/2.0
4.5
>>> 8.0/2
4.0
>>> 8/2.0
4.0
>>> 8.0/2.0
4.0

          

歸納,得到規律:不管是被除數還是除數,只要有一個數是浮點數,結果就是浮點數。所以,如果相除的結果有余數,也不會像前面一樣了,而是要返回一個浮點數,這就跟在數學上學習的結果一樣了。

            
>>> 10.0/3
3.3333333333333335
          


這個是不是就有點搞怪了,按照數學知識,應該是3.33333...,后面是3的循環了。那么你的計算機就停不下來了,滿屏都是3。為了避免這個,python武斷終結了循環,但是,可悲的是沒有按照“四舍五入”的原則終止。

關于無限循環小數問題,小學都學習了,但是這可不是一個簡單問題,看看維基百科的詞條:0.999...,會不會有深入體會呢?

總之,要用python,就得遵循她的規定,前面兩條規定已經明確了。

補充一個資料,供有興趣的朋友閱讀:浮點數算法:爭議和限制
說明:以上除法規則,是針對python2,在python3中,將5/2和5.0/2等同起來了。不過,如果要得到那個整數部分的上,可以用另外一種方式:地板除.

            
>>> 9/2
4
>>> 9//2
4

          

python總會要提供多種解決問題的方案的,這是她的風格。

開始用輪子

python之所以受人歡迎,一個很重重要的原因,就是輪子多。這是比喻啦。就好比你要跑的快,怎么辦?光天天練習跑步是不行滴,要用輪子。找輛自行車,就快了很多。還嫌不夠快,再換電瓶車,再換汽車,再換高鐵...反正你可以選擇的很多。但是,這些讓你跑的快的東西,多數不是你自己造的,是別人造好了,你來用。甚至兩條腿也是感謝父母恩賜。正是因為輪子多,可以選擇的多,就可以以各種不同速度享受了。

python就是這樣,有各種各樣別人造好的輪子,我們只需要用。只不過那些輪子在python里面的名字不叫自行車、汽車,叫做“模塊”,有人承接別的語言的名稱,叫做“類庫”、“類”。不管叫什么名字把。就是別人造好的東西我們拿過來使用。

怎么用?可以通過兩種形式用:

形式1:import module-name。import后面跟空格,然后是模塊名稱,例如:import os
形式2:from module1 import module11。module1是一個大模塊,里面還有子模塊module11,只想用module11,就這么寫了。比如下面的例子:
不??嗦了,實驗一個:

            
>>> from __future__ import division
>>> 5/2
2.5
>>> 9/2
4.5
>>> 9.0/2
4.5
>>> 9/2.0
4.5

          

注意了,引用了一個模塊之后,再做除法,就不管什么情況,都是得到浮點數的結果了。

這就是輪子的力量。

關于余數

前面計算5/2的時候,商是2,余數是1

余數怎么得到?

實驗下面的操作:

            
>>> 5%2
1
>>> 9%2
1
>>> 7%3
1
>>> 6%4
2
>>> 5.0%2
1.0

          

符號:%,就是要得到兩個數(可以是整數,也可以是浮點數)相除的余數。

前面說python有很多人見人愛的輪子(模塊),她還有豐富的內建函數,也會幫我們做不少事情。例如函數divmod()

            
>>> divmod(5,2) #表示5除以2,返回了商和余數
(2, 1)
>>> divmod(9,2)
(4, 1)
>>> divmod(5.0,2)
(2.0, 1.0)

          

四舍五入

最后一個了,一定要堅持,今天的確有點??嗦了。要實現四舍五入,很簡單,就是內建函數:round()

動手試試:

            
>>> round(1.234567,2)
1.23
>>> round(1.234567,3)
1.235
>>> round(10.0/3,4)
3.3333

          

簡單吧。越簡單的時候,越要小心,當你遇到下面的情況,就有點懷疑了:

            
>>> round(1.2345,3)
1.234        #應該是:1.235
>>> round(2.235,2)
2.23        #應該是:2.24

          

哈哈,我發現了python的一個bug,太激動了。

別那么激動,如果真的是bug,這么明顯,是輪不到我的。為什么?具體解釋看這里,下面摘錄官方文檔中的一段話:

            
Note:
The behavior of round() for floats can be surprising: for example, round(2.675, 2) gives 2.67 instead of the expected 2.68. This is not a bug: it's a result of the fact that most decimal fractions can't be represented exactly as a float. See Floating Point Arithmetic: Issues and Limitations for more information.

          

原來真的輪不到我。(垂頭喪氣狀。)

似乎除法的問題到此要結束了,其實遠遠沒有,不過,做為初學者,至此即可。還留下了很多話題,比如如何處理循環小數問題,我肯定不會讓有探索精神的朋友失望的,在我的github中有這樣一個輪子,如果要深入研究,可以來這里嘗試。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。。?/p>

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日韩app| 欧美日韩视频 | 亚洲综合成人网 | 亚洲欧美国产日本 | 成人欧美日韩视频一区 | 热久久免费 | 最新久久免费视频 | 久久高清 | 亚洲一区二区三区91 | 亚洲精品成人av | 香港一级毛片 | 天天综合网站 | 国产91对白叫床清晰播放 | 日韩一二三区 | 男女在线无遮挡毛片免费 | 色综合伊人色综合网亚洲欧洲 | 精品国产欧美一区二区 | 一个人看aaaa免费中文 | 性色av免费在线观看 | 成人国产精品视频 | 久久综合五月开心婷婷深深爱 | 天天干天天干天天 | 手机日韩看片 | 97人人澡人人爽91综合色 | 欧美福利 | 91精品国啪老师啪 | 奇米色影 | 中文字幕专区 | 国产精品永久免费视频 | 国产美女的小嫩bbb图片 | 亚洲一区二区欧美 | 中文字幕专区 | 欧美午夜激情影院 | 色图综合| 色香首页 | 日本中文字幕免费 | 最近免费日本视频在线 | 久久一er精这里有精品 | 日韩欧美色 | 色天天爱天天狠天天透 | 国产高清在线精品一区二区三区 |