您的位置:首页 > 编程语言 > Python开发

Python2 6和Python3 0中对除法操作的异同

2018-11-13 19:44 134 查看

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                     

   Python中除法有两种运算符:’/’和’//’;有三种类型的除法:传统除法、Floor除法和真除法。
   
   X / Y类型
   在Python2.6或者之前,这个操作对于整数运算会省去小数部分,而对于浮点数运算会保持小数部分;在Python3.0中变成真除法(无论任何类型都会保持小数部分,即使整除也会表示为浮点数形式)。
   示例代码:
   
   Python 2.7版本中结果:

>>> 3/21>>> 3/2.01.5>>> 4/22>>> 4/2.02.0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
   Python 3.4版本中结果:
>>> 3/21.5>>> 3/2.01.5>>> 4/22.0>>> 4/2.02.0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
   
   X // Y 类型
   Floor除法:在Python 2.2中新增的操作,在Python2.6和Python3.0中均能使用,这个操作不考虑操作对象的类型,总是省略小数部分,剩下最小的能整除的整数部分。
   示例代码:
   Python 2.7版本中结果:
   
>>> 3//21>>> 3//2.01.0>>> 4//22>>> 4//2.02.0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
   Python 3.4版本中结果(与2.7版本一样):
   
>>> 3//21>>> 3//2.01.0>>> 4//22>>> 4//2.02.0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
   
   概括来讲:
   

  • 在Python 2.6中,’/’执行传统除法,如果操作数都是整数的话,执行截断的整数除法(即对于结果只保留整数部分),否则,执行浮点除法(保留余数);’//’执行Floor除法,与Python3.0一样,对于整数执行截断除法,浮点数执行浮点除法。
  • 在Python 3.0中,’/’总是执行真除法,不管操作数的类型,都会返回包含任何余数的浮点结果;’//’执行Floor除法,截除掉余数并且针对整数操作数返回一个整数,如果有任何一个操作数是浮点数,则返回一个浮点数。

   补充:
   Floor除法:效果等同于math模块中的floor函数:
   math.floor(x)     :返回不大于x的整数
   所以当运算数是负数时:结果会向下取整。
   

>>> 5//3   #1.66666666666666671>>> -5//3-2>>>
  • 1
  • 2
  • 3
  • 4
  • 5
   与floor()函数类似的还有很多,比如trunc()函数
   
>>> import math>>> math.trunc(-1.6)-1>>> math.trunc(1.6)1
  • 1
  • 2
  • 3
  • 4
  • 5
           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: