python除法float float_python中的float除法和整除法
從python2.2開始,便有兩種除法運(yùn)算符:"/"、"//"。兩者最大區(qū)別在:
python2.2前的版本和python2.2以后3.0以前的版本的默認(rèn)情況下,"/"所做的除法是以一種兩個(gè)數(shù)或者多個(gè)數(shù)出現(xiàn)一個(gè)浮點(diǎn)數(shù)結(jié)果就以浮點(diǎn)數(shù)的形式表示,即float除法
"//"所做的除法則不相同,"//"不管兩者出現(xiàn)任何數(shù),都以整除結(jié)果為準(zhǔn),不對(duì)小數(shù)部分進(jìn)行處理,直接拋棄,也就是整除法
以下是筆者在編譯器測(cè)試的數(shù)據(jù),測(cè)試的版本是python2.7
關(guān)于"/":
>>> 3/2
1
>>> 3/2.0
1.5
>>> 3.0/2
1.5
>>> 10/3.0
3.3333333333333335
由以上的例子我們可得出,只要除數(shù)中有一個(gè)數(shù)是浮點(diǎn)數(shù),那么得到的結(jié)果也是浮點(diǎn)數(shù)
以下是關(guān)于"//":
>>> 3//2
1
>>> 3//2.0
1.0
>>> 3.0//2
1.0
>>> 3.0//2.0
1.0
由以上的例子,我們可以看出,兩個(gè)整型相除,得到的還是整型,但是。如果一個(gè)浮點(diǎn)數(shù)除以一個(gè)非浮點(diǎn)數(shù)得到的還會(huì)是一個(gè)浮點(diǎn)數(shù),但是,計(jì)算的結(jié)果卻是忽略小數(shù)部分,運(yùn)算的結(jié)果類似兩個(gè)整型相除,但是得到一個(gè)浮點(diǎn)數(shù)。另外"//"對(duì)于兩個(gè)浮點(diǎn)數(shù)也是不例外的。
如何讓"/"和"//"進(jìn)行分工
在默認(rèn)情況下,這兩種運(yùn)算符有很大的重疊地方,比如,當(dāng)兩個(gè)數(shù)都是整數(shù)的時(shí)候,兩者的運(yùn)算結(jié)果是沒有區(qū)別的。如果想在python中讓這兩種有一個(gè)明確的分工。即"/"可以用于float除法,"//"用于整除法,我們可以在程序開始的時(shí)候做以下聲明:
from __future__ import division
聲明后測(cè)試的結(jié)果(以下測(cè)試的版本是python2.7)
>>> from __future__ import division
>>> 3/2
1.5
>>> 3.0/2
1.5
>>> 3/2.0
1.5
>>> 3.0/2.0
1.5
>>> 3//2
1
>>> 3.0//2
1.0
>>> 3.0//2.0
1.0
>>> 3//2.0
1.0
>>> -11/2
-5.5
以上,我們可以知道,做這個(gè)聲明以后,"/"進(jìn)行的將是float除法而不是整除法。
還需要注意的是,在pyhton3中,"/"表示的就是float除,不需要再引入模塊,就算分子分母都是int,返回的也將是浮點(diǎn)數(shù)
總結(jié)
以上是生活随笔為你收集整理的python除法float float_python中的float除法和整除法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 删除右键新建多余菜单
- 下一篇: python批量建立文件夹