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 urlopen 使用小示例
Sep 06 Python
用Python编写脚本使IE实现代理上网的教程
Apr 23 Python
在Python中使用matplotlib模块绘制数据图的示例
May 04 Python
Python基于pyCUDA实现GPU加速并行计算功能入门教程
Jun 19 Python
如何用Python做一个微信机器人自动拉群
Jul 03 Python
在PyTorch中Tensor的查找和筛选例子
Aug 18 Python
python列表的逆序遍历实现
Apr 20 Python
jupyter notebook运行命令显示[*](解决办法)
May 18 Python
python怎么判断模块安装完成
Jun 19 Python
Python Tricks 使用 pywinrm 远程控制 Windows 主机的方法
Jul 21 Python
python正则表达式 匹配反斜杠的操作方法
Aug 07 Python
pycharm配置QtDesigner的超详细方法
Jan 25 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 性能的检查和优化方法
2009/06/21 PHP
php数组函数序列之array_key_exists() - 查找数组键名是否存在
2011/10/29 PHP
php计算2个日期的差值函数分享
2015/02/02 PHP
JS中confirm,alert,prompt函数使用区别分析
2010/04/01 Javascript
学习JavaScript的最佳方法分享
2011/10/21 Javascript
javascript实现获取服务器时间
2015/05/19 Javascript
JavaScript实现将文本框的值插入指定位置的方法
2015/08/13 Javascript
如何屏蔽防止别的网站嵌入框架代码
2015/08/24 Javascript
利用jQuery实现漂亮的圆形进度条倒计时插件
2015/09/30 Javascript
浅析Javascript中bind()方法的使用与实现
2016/05/30 Javascript
第三篇Bootstrap网格基础
2016/06/21 Javascript
JavaScript如何实现跨域请求
2016/08/05 Javascript
jQuery Form表单取值的方法
2017/01/11 Javascript
详解利用 Express 托管静态文件的方法
2017/09/18 Javascript
nodejs使用express获取get和post传值及session验证的方法
2017/11/09 NodeJs
值得收藏的八个常用的js正则表达式
2018/10/19 Javascript
JS实现倒计时图文效果
2018/11/17 Javascript
微信小程序云开发之使用云存储
2019/05/17 Javascript
vue动态渲染svg、添加点击事件的实现
2020/03/13 Javascript
js实现鼠标滑动到某个div禁止滚动
2020/09/17 Javascript
JavaScript实现点击图片换背景
2020/11/20 Javascript
[00:37]DOTA2上海特级锦标赛 OG战队宣传片
2016/03/03 DOTA
pip matplotlib报错equired packages can not be built解决
2018/01/06 Python
Python3正则匹配re.split,re.finditer及re.findall函数用法详解
2018/06/11 Python
浅谈keras.callbacks设置模型保存策略
2020/06/18 Python
基于Jquery和Css3代码制作可以缩放的搜索框
2015/11/19 HTML / CSS
美国最大的网络男装服装品牌:Bonobos
2017/05/25 全球购物
描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理
2015/03/25 面试题
什么是Remote Module
2016/06/10 面试题
Servlet如何得到客户端机器的信息
2014/10/17 面试题
党的群众路线教育实践活动心得体会
2014/03/03 职场文书
成语的广告词
2014/03/19 职场文书
如何写自我鉴定
2014/03/19 职场文书
党员承诺书范文
2014/05/19 职场文书
单位授权委托书范文
2014/08/02 职场文书
MySQL七大JOIN的具体使用
2022/02/28 MySQL