Python中除法使用的注意事項
本文實例講解了Python中除法使用的注意事項,是非常重要的技巧,對于Python程序設(shè)計來說有很好的借鑒價值。具體分析如下:
現(xiàn)來看如下示例:
def avg(first, *rest): return (first + sum(rest)) / (1 + len(rest)) # Sample use avg(1, 2) # 1.5 avg(1, 2, 3, 4) # 2.5
源程序只是為了演示變長參數(shù)的使用,不過 Python 2.7.1 的解釋器里,我得到的結(jié)果卻和注釋的結(jié)果不一樣
>>> def avg(first, *rest): ... return (first + sum(rest)) / (1 + len(rest)) ... >>> avg(1, 2) 1 >>> avg(1, 2, 3, 4) 2
可以很明顯的看到,小數(shù)點后的數(shù)據(jù)被截斷了,我記得兩個整數(shù)相除,"http://" 應該才是取整,難道我記錯了?
>>> def avg(first, *rest): ... return (first + sum(rest)) // (1 + len(rest)) # change '/' to '//' ... >>> avg(1, 2) 1 >>> avg(1, 2, 3, 4) 2
將 “/” 改成了“//”,得到的結(jié)果是一樣的,“//”的確是取整這一點我是沒記錯,不過為什么“/”的結(jié)果也是截斷了的?
同樣的程序我在 3.4.1 的解釋器里面做了測試,得到了預想的結(jié)果:
>>> def avg(first, *rest): ... return (first + sum(rest)) / (1 + len(rest)) ... >>> avg(1, 2) 1.5 >>> avg(1, 2, 3, 4) 2.5 >>> def avg(first, *rest): ... return (first + sum(rest)) // (1 + len(rest)) # change '/' to '//' ... >>> avg(1, 2) 1 >>> avg(1, 2, 3, 4) 2
可以看到在 3.4.1 的解釋器里,“/”的結(jié)果保留了小數(shù)位,而“//”則是取整后的結(jié)果
搜索之后,找到了stackoverflow上的這個問題:Python里如何強制除法的結(jié)果為浮點數(shù)? 注意這個是針對 2.x 的版本,3.x 里面并不存在這樣的問題
答案的前兩個解決方案,都很不錯:
方法1:
>>> from __future__ import division >>> a = 4 >>> b = 6 >>> c = a / b >>> c 0.66666666666666663
方法2:
類似于C語言里面的做法:
c = a / float(b)
相信本文所述實例會對大家的Python程序設(shè)計有一定的幫助。
相關(guān)文章
Python數(shù)據(jù)結(jié)構(gòu)與算法中的隊列詳解(1)
這篇文章主要為大家詳細介紹了Python的隊列,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03
matplotlib之pyplot模塊坐標軸范圍設(shè)置(autoscale(),xlim(),ylim())
這篇文章主要介紹了matplotlib之pyplot模塊坐標軸范圍設(shè)置(autoscale(),xlim(),ylim()),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-03-03
python監(jiān)控進程狀態(tài),記錄重啟時間及進程號的實例
今天小編就為大家分享一篇python監(jiān)控進程狀態(tài),記錄重啟時間及進程號的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07
詳談pandas中agg函數(shù)和apply函數(shù)的區(qū)別
下面小編就為大家分享一篇詳談pandas中agg函數(shù)和apply函數(shù)的區(qū)別,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04
Python設(shè)計模式結(jié)構(gòu)型代理模式
這篇文章主要介紹了Python設(shè)計模式結(jié)構(gòu)型代理模式,代理模式即Proxy?Pattern,為其他對象提供一種代理以控制對這個對象的訪問,下文內(nèi)容詳細介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-02-02
python如何終止死循環(huán)和開啟死循環(huán)
這篇文章主要介紹了python如何終止死循環(huán)和開啟死循環(huán)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05
Python無法用requests獲取網(wǎng)頁源碼的解決方法
爬蟲獲取信息,很多時候是需要從網(wǎng)頁源碼中獲取鏈接信息的,下面這篇文章主要給大家介紹了關(guān)于Python無法用requests獲取網(wǎng)頁源碼的解決方法,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下2022-07-07

