从python2.2开始,便有二种除法运算符:"/" 、"//" 。二者较大 区别在:
- python2.2前的版本和python2.2之后3.0之前的版本的默认设置状况下 ,"/"所做的除法是以一种两个数或是好几个数出現一个浮点数結果就以浮点数的方式表明 ,即float除法
- "//"所做的除规律不同样,"//"无论二者出現任何数,都以整除結果为标准 ,不对小数部分开展解决,立即抛下,也就是整除法
下列是小编在c语言编译器检测的数据信息 ,检测的版本是python2.7
有关"/":
-
>>> 3/2
-
1
-
>>> 3/2.0
-
1.5
-
>>> 3.0/2
-
1.5
-
>>> 10/3.0
-
3.3333333333333335
-
由之上的事例大家可得到,要是除数中有一个数是浮点数,那麼获得的結果也是浮点数
下列是有关"//":
-
>>> 3//2
-
1
-
>>> 3//2.0
-
1.0
-
>>> 3.0//2
-
1.0
-
>>> 3.0//2.0
-
1.0
-
由之上的事例 ,我们可以看得出,2个整形相除,获得的還是整形 ,可是 。假如一个浮点数除于一个非浮点数获得的还会继续是一个浮点数,可是,测算的結果确是忽视小数部分 ,计算的結果相近2个整形相除 ,可是获得一个浮点数。此外"//"针对2个浮点数也不是列外的。
怎么让"/"和"//"开展职责分工
在默认设置状况下,这二种运算符有非常大的重合地区,例如 ,当两个数全是整数金额的情况下,二者的计算結果是沒有区别的 。假如想在python中让这二种有一个确立的职责分工。即"/"能够 用以float除法,"//"用以整除法 ,我们可以在程序流程刚开始的情况下做下列申明:
-
from __future__ import division
-
申明后检测的結果(下列检测的版本是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
-
之上,我们可以了解,做这一申明之后 ,"/"开展的将是float除法而不是整除法。
还必须留意的是,在pyhton3中,"/"表明的便是float除 ,不用再引进控制模块,即使分子分母全是int,回到的也将是浮点数
本文版权归趣快排SEO www.SeogurUblog.com 所有,如有转发请注明来出,竞价开户托管,seo优化请联系QQ▶61910465