欢迎加入QQ讨论群258996829
麦子学院 头像
苹果6袋
6
麦子学院

Python2和Python3中除法操作的不同点详解

发布时间:2017-10-10 08:14  回复:0  查看:4384   最后回复:2017-10-10 08:14  
本文和大家分享的主要是python2 python3 中除法操作的一些区别,一起来看看吧,希望对大家 学习python有所帮助。
  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
来源:简书

您还未登录,请先登录

热门帖子

最新帖子