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爬取w3shcool的JQuery课程并且保存到本地
Apr 06 Python
python 接口返回的json字符串实例
Mar 27 Python
使用pandas实现csv/excel sheet互相转换的方法
Dec 10 Python
Python动态赋值的陷阱知识点总结
Mar 17 Python
Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析
Apr 27 Python
python 默认参数相关知识详解
Sep 18 Python
Pandas 解决dataframe的一列进行向下顺移问题
Dec 27 Python
python实现简单飞行棋
Feb 06 Python
tensorflow 获取checkpoint中的变量列表实例
Feb 11 Python
Python如何自动获取目标网站最新通知
Jun 18 Python
Python 实现一个计时器
Jul 28 Python
python基于win32api实现键盘输入
Dec 09 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
PHP中利用substr_replace将指定两位置之间的字符替换为*号
2011/01/27 PHP
PHP查找一列有序数组是否包含某值的方法
2020/02/07 PHP
php使用Swoole实现毫秒级定时任务的方法
2020/09/04 PHP
IE8 兼容性问题(属性名区分大小写)
2009/06/04 Javascript
几个有趣的Javascript Hack
2010/07/24 Javascript
有关javascript的性能优化 (repaint和reflow)
2013/04/12 Javascript
jquery 扑捉回车键事件代码
2014/04/24 Javascript
浅析Node在构建超媒体API中的作用
2014/07/30 Javascript
JavaScript实现从数组中选出和等于固定值的n个数
2014/09/03 Javascript
利用原生JavaScript获取元素样式只是获取而已
2014/10/08 Javascript
c#+jquery实现获取radio和checkbox的值
2020/09/12 Javascript
JS实现动态生成表格并提交表格数据向后端
2020/11/25 Javascript
BootStrap使用popover插件实现鼠标经过显示并保持显示框
2016/06/23 Javascript
第一次接触Bootstrap框架
2016/10/24 Javascript
Node.js中文件操作模块File System的详细介绍
2017/01/05 Javascript
jQuery实现别踩白块儿网页版小游戏
2017/01/18 Javascript
浅析javaScript中的浅拷贝和深拷贝
2017/02/15 Javascript
微信小程序 合法域名校验出错详解及解决办法
2017/03/09 Javascript
JS获取鼠标位置距浏览器窗口距离的方法示例
2017/04/11 Javascript
js和jquery中获取非行间样式
2017/05/05 jQuery
js实现随机点名小功能
2017/08/17 Javascript
图文讲解用vue-cli脚手架创建vue项目步骤
2019/02/12 Javascript
[02:56]《DAC最前线》之国外战队抵达上海备战亚洲邀请赛
2015/01/28 DOTA
python 使用值来排序一个字典的方法
2018/11/16 Python
python获取url的返回信息方法
2018/12/17 Python
Python关于__name__属性的含义和作用详解
2020/02/19 Python
python 在threading中如何处理主进程和子线程的关系
2020/04/25 Python
自学python用什么系统好
2020/06/23 Python
基于python requests selenium爬取excel vba过程解析
2020/08/12 Python
原生canvas制作画图小工具的踩坑和爬坑
2020/06/09 HTML / CSS
雅虎笔试题(字符串操作)
2015/03/24 面试题
怎么写好自荐书
2014/03/02 职场文书
结婚幸福感言
2015/08/01 职场文书
《实心球》教学反思
2016/02/23 职场文书
php随机生成验证码,php随机生成数字,php随机生成数字加字母!
2021/04/01 PHP
springboot使用Redis作缓存使用入门教程
2021/07/25 Redis