国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

跟老齊學Python之啰嗦的除法

2020-02-23 05:47:26
字體:
來源:轉載
供稿:網友

除法啰嗦的,不僅是python。

整數除以整數

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

>>> 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,計算結果就是商那個整數。或者可以理解為:整數除以整數,結果是整數(商)。

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

>>> 5/22>>> 6/32>>> 5/22>>> 6/23>>> 7/23>>> 8/24>>> 9/24

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

浮點數與整數相除

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

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

>>> 9.0/24.5>>> 9/2.04.5>>> 9.0/2.04.5>>> 8.0/24.0>>> 8/2.04.0>>> 8.0/2.04.0

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

>>> 10.0/33.3333333333333335


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

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

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

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

>>> 9/24>>> 9//24            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 台江县| 通山县| 临清市| 滨州市| 黑龙江省| 左贡县| 赣榆县| 大姚县| 永吉县| 上饶县| 桂阳县| 麻栗坡县| 堆龙德庆县| 萨迦县| 三台县| 陇南市| 南丹县| 萝北县| 八宿县| 崇明县| 堆龙德庆县| 凤山市| 通许县| 鄂温| 友谊县| 金溪县| 东兴市| 曲水县| 潞城市| 南汇区| 富阳市| 弥勒县| 韶关市| 成武县| 余姚市| 仁化县| 崇州市| 镇雄县| 涞水县| 松原市| 外汇|