Python2和Python3中除法操作/的不同

微信公众号:软测小生 ruancexiaosheng

Python中除法有两种运算符:’/’和’//’;有三种类型的除法:传统除法、Floor除法和真除法。

X / Y类型:

在Python2.6或者之前,这个操作对于整数运算会省去小数部分,而对于浮点数运算会保持小数部分;在Python3.0中变成真除法(无论任何类型都会保持小数部分,即使整除也会表示为浮点数形式)。

示例代码:
>>>3//2
1
>>>3//2.0
1.0
>>>4//2
2
>>>4//2.0
2.0

Python 3.4版本中结果:

>>>3/2
1.5
>>>3/2.0
1.5
>>>4/2
2.0
>>>4/2.0
2.0

X // Y 类型

Floor除法:在Python 2.2中新增的操作,在Python2.6和Python3.0中均能使用,这个操作不考虑操作对象的类型,总是省略小数部分,剩下最小的能整除的整数部分。

示例代码:

Python 2.7版本中结果:
>>>3//2
1
>>>3//2.0
1.0
>>>4//2
2
>>>4//2.0
2.0

Python 3.4版本中结果(与2.7版本一样):

>>>3//2
1
>>>3//2.0
1.0
>>>4//2
2
>>>4//2.0
2.0

概括来讲:

在Python 2.6中,’/’执行传统除法,如果操作数都是整数的话,执行截断的整数除法(即对于结果只保留整数部分),否则,执行浮点除法(保留余数);’//’执行Floor除法,与Python3.0一样,对于整数执行截断除法,浮点数执行浮点除法。

在Python 3.0中,’/’总是执行真除法,不管操作数的类型,都会返回包含任何余数的浮点结果;’//’执行Floor除法,截除掉余数并且针对整数操作数返回一个整数,如果有任何一个操作数是浮点数,则返回一个浮点数。

补充:

Floor除法:效果等同于math模块中的floor函数:

math.floor(x) :返回不大于x的整数

所以当运算数是负数时:结果会向下取整。

>>>5//3#1.6666666666666667
1
>>>-5//3
-2
>>>

与floor()函数类似的还有很多,比如trunc()函数

>>>importmath
>>>math.trunc(-1.6)
-1
>>>math.trunc(1.6)
1

#参考justforuse CSDN#
http://blog.csdn.net/u014291497/article/details/50984626

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在编程中我们总要进行一些数学运算以及数字处理,尤其是浮点数的运算和处理,这篇文章主要介绍C语言下的数学库。而其他语...
    欧阳大哥2013阅读 5,357评论 0 12
  • Python2.x与3​​.x版本区别 Python的3​​.0版本,常被称为Python 3000,或简称Py3...
    huldaZhang阅读 332评论 0 1
  • 内置函数Python解释器内置了许多功能和类型,总是可用的。他们是按字母顺序列在这里。 abs(x)返回一个数的绝...
    uangianlap阅读 1,285评论 0 0
  • 定点小数运算 来自:http://www.eepw.com.cn/article/17893.htm 在DSP世界...
    郝宇峰阅读 9,396评论 0 2
  • 你是怎样肯定一个人是真的喜欢你呢 是不怕麻烦的跑很远来照顾你 是半夜你胃疼送来的胃疼药 是凌晨去火车站接你 是给你...
    安然无恙好入眠x阅读 114评论 0 0