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


Posted in Python onApril 28, 2017

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

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

以上这篇详谈Python2.6和Python3.0中对除法操作的异同就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
django小技巧之html模板中调用对象属性或对象的方法
Nov 30 Python
解决Python正则表达式匹配反斜杠''\''问题
Jul 17 Python
python+openCV调用摄像头拍摄和处理图片的实现
Aug 06 Python
python opencv调用笔记本摄像头
Aug 28 Python
windows下Python安装、使用教程和Notepad++的使用教程
Oct 06 Python
python3中numpy函数tile的用法详解
Dec 04 Python
python图片验证码识别最新模块muggle_ocr的示例代码
Jul 03 Python
python之语音识别speech模块
Sep 09 Python
pandas处理csv文件的方法步骤
Oct 16 Python
基于Python实现的购物商城管理系统
Apr 27 Python
Python何绘制带有背景色块的折线图
Apr 23 Python
python如何利用cv2.rectangle()绘制矩形框
Dec 24 Python
浅谈Python2.6和Python3.0中八进制数字表示的区别
Apr 28 #Python
用pickle存储Python的原生对象方法
Apr 28 #Python
Python标准库之collections包的使用教程
Apr 27 #Python
Golang与python线程详解及简单实例
Apr 27 #Python
Mac中升级Python2.7到Python3.5步骤详解
Apr 27 #Python
详解Python 2.6 升级至 Python 2.7 的实践心得
Apr 27 #Python
Python中创建字典的几种方法总结(推荐)
Apr 27 #Python
You might like
php实现文件管理与基础功能操作
2017/03/21 PHP
php curl获取https页面内容,不直接输出返回结果的设置方法
2019/01/15 PHP
Laravel使用swoole实现websocket主动消息推送的方法介绍
2019/10/20 PHP
php中加密解密DES类的简单使用方法示例
2020/03/26 PHP
Thinkphp 框架扩展之行为扩展原理与实现方法分析
2020/04/23 PHP
phpStudy vscode 搭建debug调试的教程详解
2020/07/28 PHP
纯JAVASCRIPT图表动画插件Highcharts Examples
2011/04/16 Javascript
jquery实现input输入框实时输入触发事件代码
2014/01/28 Javascript
jquery 实现两级导航菜单附效果图
2014/03/07 Javascript
在父页面得到zTree已选中的节点的方法
2015/02/12 Javascript
jQuery实现带渐显效果的人物多级关系图代码
2015/10/16 Javascript
javascript实现计时器的简单方法
2016/02/21 Javascript
Angular 理解module和injector,即依赖注入
2016/09/07 Javascript
react 创建单例组件的方法
2018/04/26 Javascript
简单的三步vuex入门
2018/05/20 Javascript
快速搭建Node.js(Express)用户注册、登录以及授权的方法
2019/05/09 Javascript
layer.js open 隐藏滚动条的例子
2019/09/05 Javascript
vue实现权限控制路由(vue-router 动态添加路由)
2019/11/04 Javascript
vant-ui框架的一个bug(解决切换后onload不触发)
2020/11/11 Javascript
[04:42]5分钟带你了解什么是DOTA2(第一期)
2017/02/07 DOTA
从零学python系列之数据处理编程实例(二)
2014/05/22 Python
Python编程语言的35个与众不同之处(语言特征和使用技巧)
2014/07/07 Python
Flask框架响应、调度方法和蓝图操作实例分析
2018/07/24 Python
selenium+Chrome滑动验证码破解二(某某网站)
2019/12/17 Python
Python Tornado之跨域请求与Options请求方式
2020/03/28 Python
在Django中自定义filter并在template中的使用详解
2020/05/19 Python
Python logging模块异步线程写日志实现过程解析
2020/06/30 Python
BISSELL官网:北美吸尘器第一品牌
2019/03/14 全球购物
Yahoo-PHP面试题1
2016/07/20 面试题
普师专业个人自荐信范文
2013/11/26 职场文书
金融行业务员的自我评价
2013/12/13 职场文书
会计求职信
2014/05/29 职场文书
安全生产目标管理责任书
2014/07/25 职场文书
业务员工作态度散漫检讨书
2014/11/02 职场文书
SQL Server代理:理解SQL代理错误日志处理方法
2021/06/30 SQL Server
golang实现一个简单的websocket聊天室功能
2021/10/05 Golang