Python2.6和Python3.0中对除法操作的异同
2016-03-25 23:15
861 查看
Python中除法有两种运算符:’/’和’//’;有三种类型的除法:传统除法、Floor除法和真除法。
X / Y类型:
在Python2.6或者之前,这个操作对于整数运算会省去小数部分,而对于浮点数运算会保持小数部分;在Python3.0中变成真除法(无论任何类型都会保持小数部分,即使整除也会表示为浮点数形式)。
示例代码:
Python 2.7版本中结果:
Python 3.4版本中结果:
X // Y 类型:
Floor除法:在Python 2.2中新增的操作,在Python2.6和Python3.0中均能使用,这个操作不考虑操作对象的类型,总是省略小数部分,剩下最小的能整除的整数部分。
示例代码:
Python 2.7版本中结果:
Python 3.4版本中结果(与2.7版本一样):
概括来讲:
在Python 2.6中,’/’执行传统除法,如果操作数都是整数的话,执行截断的整数除法(即对于结果只保留整数部分),否则,执行浮点除法(保留余数);’//’执行Floor除法,与Python3.0一样,对于整数执行截断除法,浮点数执行浮点除法。
在Python 3.0中,’/’总是执行真除法,不管操作数的类型,都会返回包含任何余数的浮点结果;’//’执行Floor除法,截除掉余数并且针对整数操作数返回一个整数,如果有任何一个操作数是浮点数,则返回一个浮点数。
补充:
Floor除法:效果等同于math模块中的floor函数:
math.floor(x) :返回不大于x的整数
所以当运算数是负数时:结果会向下取整。
与floor()函数类似的还有很多,比如trunc()函数:
X / Y类型:
在Python2.6或者之前,这个操作对于整数运算会省去小数部分,而对于浮点数运算会保持小数部分;在Python3.0中变成真除法(无论任何类型都会保持小数部分,即使整除也会表示为浮点数形式)。
示例代码:
Python 2.7版本中结果:
>>> 3/2 1 >>> 3/2.0 1.5 >>> 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()函数:
>>> import math >>> math.trunc(-1.6) -1 >>> math.trunc(1.6) 1
相关文章推荐
- 我的Python学习之路之基本语法-输入输出
- python spark wingide
- 配置python镜像源
- 堆排序(python实现)
- <Python>Numpy和Matplotlib的HelloWorld
- Python入门 之 Set
- python中的字符串编码
- Python reverse order
- Python介绍、环境搭建(Eclipse插件)、第一个程序
- numpy 常用api(四)
- Python 分发工具初探之 setuptools 进阶
- python--类方法、对象方法、静态方法
- Python--类定义
- python 使用 passlib 库在 windows 平台实现 crypt
- Spark机器学习7·降维模型(scala&python)
- Spark机器学习1·编程入门(scala/java/python)
- python 模拟登陆leetcode
- Python环境的安装
- Python碎片小知识点总结
- 自己实现一个Python调试器