Python中除法使用的注意事項
本文實(shí)例講解了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ù)點(diǎn)后的數(shù)據(jù)被截斷了,我記得兩個整數(shù)相除,"http://" 應(yīng)該才是取整,難道我記錯了?
>>> def avg(first, *rest): ... return (first + sum(rest)) // (1 + len(rest)) # change '/' to '//' ... >>> avg(1, 2) 1 >>> avg(1, 2, 3, 4) 2
將 “/” 改成了“//”,得到的結(jié)果是一樣的,“//”的確是取整這一點(diǎn)我是沒記錯,不過為什么“/”的結(jié)果也是截斷了的?
同樣的程序我在 3.4.1 的解釋器里面做了測試,得到了預(yù)想的結(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里如何強(qiáng)制除法的結(jié)果為浮點(diǎn)數(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)
相信本文所述實(shí)例會對大家的Python程序設(shè)計有一定的幫助。
相關(guān)文章
python實(shí)現(xiàn)簡單的udp發(fā)送和接收
這篇文章主要介紹了python實(shí)現(xiàn)簡單的udp發(fā)送和接收方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09python區(qū)塊鏈簡易版交易實(shí)現(xiàn)示例
這篇文章主要為大家介紹了python區(qū)塊鏈簡易版交易實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05Python第三方庫face_recognition在windows上的安裝過程
今天為大家介紹下face recognition在Windows系統(tǒng)上安裝與使用,但在Windows平臺上face recognition性能會有所下降2019-05-05python的numpy模塊實(shí)現(xiàn)邏輯回歸模型
這篇文章主要為大家詳細(xì)介紹了python的numpy模塊實(shí)現(xiàn)邏輯回歸模型,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-07-07python 遞歸遍歷文件夾,并打印滿足條件的文件路徑實(shí)例
下面小編就為大家?guī)硪黄猵ython 遞歸遍歷文件夾,并打印滿足條件的文件路徑實(shí)例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-08-08Python實(shí)現(xiàn)的多線程端口掃描工具分享
這篇文章主要介紹了Python實(shí)現(xiàn)的多線程端口掃描工具分享,工具實(shí)現(xiàn)了掃單IP和掃IP段功能,本文給出運(yùn)行效果和實(shí)現(xiàn)源碼,需要的朋友可以參考下2015-01-01Python腳本簡單實(shí)現(xiàn)打開默認(rèn)瀏覽器登錄人人和打開QQ的方法
這篇文章主要介紹了Python腳本簡單實(shí)現(xiàn)打開默認(rèn)瀏覽器登錄人人和打開QQ的方法,涉及Python針對瀏覽器及應(yīng)用程序的相關(guān)操作技巧,代碼非常簡單實(shí)用,需要的朋友可以參考下2016-04-04