Python中分为3种除法:传统除法、精确除法、地板除。

传统除法

如果是整数除法则执行地板除,如果是浮点数除法则执行精确除法。

精确除法

除法总是会返回真实的商,不管操作数是整形还是浮点型。执行from __future__ import division 指令就可以做到这一点。

地板除

从Python2.2开始,增加了一个操作符 // ,以执行地板除://除法不管操作数为何种数值类型,总是会舍去小数部分,返回数字序列中比真正的商小的最接近的数字。

内建函数divmod()

divmod (a,b),返回(a//b,a%b)

/或//

python中除法的语法形式为:

  • ’/’
  • ’//’

python中除法的类型为:

  • 传统除法(divide)
  • Floor除法(floor_division)
  • 真除法(true_divide)

除数和被除数的类型组合:

  • 都为整数
  • 一整一浮点
  • 都为浮点

除法的范围结果:

  • 整数
  • 浮点数(取整浮点数,带余数浮点数)

有两种除法运算符:’/’和’//’;

有三种类型的除法:传统除法(divide)、Floor除法(floor_division)和真除法(true_divide)

概括来讲

  • 在Python 3.0中
  1. /现在总是执行真除法,不管操作数的类型,都返回包含任何余数的一个浮点数。
  2. //执行Floor除法,首先肯定为向下取整,并且针对整数操作数返回一个向下取整整数,如果有任何一个操作数是浮点类型,则返回一个向下取整浮点数。
  • 在Python 2.7中
  1. /表示传统除法,如果两个操作数都是整数的话,执行截断的整数除法,返回整数;否则,执行浮点除注(保留余数),返回浮点数。
  2. //执行Floor除法,首先肯定为向下取整,并且像在Python 3.0中一样工作,并且针对整数操作数返回一个向下取整整数,如果有任何一个操作数是浮点类型,则返回一个向下取整浮点数。

总结:

/在python2.7中表示传统除法,在python3.0中表示真除法

//在python2.7和python3.0中都表示Floor除法

Numpy中除法

  • divide函数在整数和浮点数除法中均只保留整数部分
  • true_divide函数与数学中的除法定义更为接近,即返回除法的浮点数结果而不作截断
  • floor_divide函数总是返回整数结果,相当于先调用divide函数再调用floor函数。floor函数将对浮点数进行向下取整并返回整数