Python除法之传统除法、Floor除法及真除法实例详解


Posted in Python onMay 23, 2019

先给大家介绍下Python除法之传统除法、Floor除法及真除法

python3.0

/总是执行真除法,不管操作数的类型,都返回浮点数结果(即使能整除,如4/2==2.0);
//执行Floor除法,会截断余数直接返回一个整数,如果有任何一个操作数是浮点数则返回浮点数(如4//2==2,3//2==1.5, 4.0//2==2.0)

总之:在python3.0中,/为真除法,不会截断,且结果无论能否整除都是浮点数;//为地板除法,会对除法的结果进行取整返回,至于返回的结果是否是浮点数取决于操作数中有无浮点数,如两个操作数都是整数那么就直接返回一个取整后的整数,如果操作数中有浮点数则返回结果是浮点数。

python2.0

/表示传统除法,如果两个操作数都是整数的话执行截断除法,否则执行浮点除法,//执行Floor除法,同3.0

注意

在3.0中,/的结果总是返回浮点数与操作数类型无关,而//的结果总是依赖于操作数的类型,如果有一个是浮点数结果就是浮点数

ps:下面看下Python3除法之真除法、截断除法和下取整对比

概述

在Python3中,数学运算中的除法被分为两种,分别是“真除法”,即无论任何类型相除的结果都会保留小数点,和我们实际的数学运算结果一致,而“截断除法”,则是无论任何类型相除的结果都会省略结果的小数部分,剩下最小的能整除的整数部分。以下是两种除法的基本形式:

# 真除法
X / Y
# 截断除法
X // Y

真除法

X = 8
Y = 2
Z = 3
print(X / Y)
print(X / Z)

示例结果:

4.0
2.6666666666666665

真除法的结果表明不论操作数的类型其相除结果都返回一个浮点结果。

截断除法

X = 8
Y = 2
Z = 3
S = -8

print(X // Y)
print(X // Z)
print(S // Y)
print(S // Z)

示例结果:

4
2
-4
-3

从示例中我们可以看到,截断除法并不是真的直接去掉小数点后面的数字,而是类似模块 math 中的 floor 方法,即向下取整,且负值的取整方式也是这样的。

import math
math.floor(2.0)
math.floor(2.6666666666666665)
math.floor(-2.0)
math.floor(-2.6666666666666665)

示例结果:

2
2
-2
-3

同样的模块 math 中的 ceil 方法可以实现浮点数的上取整。

import math
print(math.ceil(2.0))
print(math.ceil(2.6666666666666665))
print(math.ceil(-2.0))
print(math.ceil(-2.6666666666666665))

2
3
-2
-2

总结

以上所述是小编给大家介绍的Python除法之传统除法、Floor除法及真除法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Python 相关文章推荐
收藏整理的一些Python常用方法和技巧
May 18 Python
Python读取网页内容的方法
Jul 30 Python
Python实现二维数组按照某行或列排序的方法【numpy lexsort】
Sep 22 Python
Python内置模块ConfigParser实现配置读写功能的方法
Feb 12 Python
python3+PyQt5自定义视图详解
Apr 24 Python
python os用法总结
Jun 08 Python
Python动态导入模块的方法实例分析
Jun 28 Python
python3实现钉钉消息推送的方法示例
Mar 14 Python
新手如何发布Python项目开源包过程详解
Jul 11 Python
Tensorflow实现神经网络拟合线性回归
Jul 19 Python
解决jupyter notebook import error但是命令提示符import正常的问题
Apr 15 Python
Python Opencv图像处理基本操作代码详解
Aug 31 Python
详解Python3除法之真除法、截断除法和下取整对比
May 23 #Python
python实现远程控制电脑
May 23 #Python
python日志logging模块使用方法分析
May 23 #Python
Django框架模板语言实例小结【变量,标签,过滤器,继承,html转义】
May 23 #Python
Django框架模板文件使用及模板文件加载顺序分析
May 23 #Python
Django框架登录加上验证码校验实现验证功能示例
May 23 #Python
python图形工具turtle绘制国际象棋棋盘
May 23 #Python
You might like
用mysql_fetch_array()获取当前行数据的方法详解
2013/06/05 PHP
使用php实现从身份证中提取生日
2016/05/09 PHP
给artDialog 5.02 增加ajax get功能详细介绍
2012/11/13 Javascript
JavaScript中的onerror事件概述及使用
2013/04/01 Javascript
在jQuery中 关于json空对象筛选替换
2013/04/15 Javascript
js读取注册表的键值示例
2013/09/25 Javascript
Js为表单动态添加节点内容的方法
2015/02/10 Javascript
JS实现表格数据各种搜索功能的方法
2015/03/03 Javascript
jQuery左侧大图右侧小图焦点图幻灯切换代码分享
2015/08/19 Javascript
详解JavaScript基本类型和引用类型
2015/12/09 Javascript
jQuery针对input的class属性写了多个值情况下的选择方法
2016/06/03 Javascript
jQuery实现移动端手机商城购物车功能
2016/09/24 Javascript
JavaScript实现开关等效果
2017/09/08 Javascript
基于Vue框架vux组件库实现上拉刷新功能
2017/11/28 Javascript
在vue中高德地图引入和轨迹的绘制的实现
2019/10/11 Javascript
Node.js+Vue脚手架环境搭建的方法步骤
2020/03/08 Javascript
jquery实现抽奖功能
2020/10/22 jQuery
关于JavaScript中异步/等待的用法与理解
2020/11/18 Javascript
[51:32]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
跟老齐学Python之有容乃大的list(4)
2014/09/28 Python
用python读写excel的方法
2014/11/18 Python
Python函数可变参数定义及其参数传递方式实例详解
2015/05/25 Python
Sanic框架基于类的视图用法示例
2018/07/18 Python
Python求两个圆的交点坐标或三个圆的交点坐标方法
2018/11/07 Python
对Tensorflow中Device实例的生成和管理详解
2020/02/04 Python
Python request中文乱码问题解决方案
2020/09/17 Python
html5教程调用绘图api画简单的圆形代码分享
2013/12/04 HTML / CSS
计算机网络专业推荐信
2013/11/24 职场文书
军训自我鉴定
2013/12/14 职场文书
安全生产专项整治方案
2014/05/06 职场文书
关于建议书的格式范文
2014/05/20 职场文书
初中毕业典礼演讲稿
2014/09/09 职场文书
小学语文教学随笔
2015/08/14 职场文书
调研报告的主要写法
2019/04/18 职场文书
新手初学Java List 接口
2021/07/07 Java/Android
mysql通过group by分组取最大时间对应数据的两种有效方法
2022/09/23 MySQL